无状态会话Bean
软件工程师高级考题
高级软件工程师考试试题(高级软件工程师考试试题( A 卷)1、下哪种命名空间中的类型用于创建Windows GUI 应用程序。
(选择1 项) A 、System.Web.Services B 、system.Web.UI C 、System.Windows.Forms D、System.ServiceProcess2、判断这PL/SQL 代码块:(选择1 项) BEGIN FOR i IN 1..6 LOOP IF i = 2 OR i = 3 THEN null; ELSE INSERT INTO example(one) V ALUES (i); END IF; ROLLBACK; END LOOP; COMMIT; END; 有多少行被插入到表EXAMPLE ? A 、0 B、1 C、2 D、33、链表具有的特点是:(选择3项)A、不必事先估计存储空间B、可随机访问任一元素C、插入删除不需要移动元素D、所需空间与线性表长度成正比4、序列图描述对象是如何交互的并且将重点放在消息序列上。
(选择1项)A、正确B、不正确5、一个XML 必须有DTD 或Schemas (选择1项)A、正确B、不正确6、动态网站需要的技术为。
(选择3 项) A、CGI B、HTTP C、ASPD、PHP7、Linux 文件名的长度不得超过( A、64 B、128 C、256 D、5128、在Struts 中实现页面跳转主要通过什么方法来实现?(选择1 项)A 、server.transferB 、response.redirectC 、mapping.findForwardD 、response.sendRedirect9、EJB的优点有哪些?(选择2项)A、技术领先B、价格低廉C、性能优越D、强大的容器支持10、在使用匿名登录ftp 时,用户名为()?(选择1 项) A、login users B、anonymous C、root D 、guest )个字符?(选择1 项)。
jakarta base注解
jakarta base注解
在Java中,@Jakarta注解由The Jakarta Project引入,用于指
示基于Java Jakarta Enterprise Edition(Jakarta EE)规范的类或方法。
这些注解用于为Java EE(现在已更名为Jakarta EE)
应用程序提供元数据信息。
一些常见的Jakarta基础注解包括:
1. @Entity:用于定义与数据库表相对应的实体类。
2. @Stateless:用于定义无状态的会话Bean。
3. @Stateful:用于定义有状态的会话Bean。
4. @MessageDriven:用于定义消息驱动的Bean。
5. @Inject:用于依赖注入,将相关的依赖注入到目标对象中。
6. @EJB:用于依赖注入,将EJB(Enterprise Java Bean)注入到目标对象中。
7. @Resource:用于依赖注入,将容器提供的资源(如数据源、JMS连接等)注入到目标对象中。
8. @Path:用于定义RESTful Web服务的路径。
9. @GET、@POST、@PUT、@DELETE等:用于定义RESTful Web服务的请求方法。
这些注解提供了一种基于注解的编程方式,可以简化开发过程并提高代码的可读性和可维护性。
在Jakarta EE应用程序中,
使用这些注解可以定义实体类、会话Bean以及RESTful Web
服务等。
Spring的并发问题——有状态Bean和无状态Bean
Spring的并发问题——有状态Bean和⽆状态Bean⼀、有状态和⽆状态有状态会话bean :每个⽤户有⾃⼰特有的⼀个实例,在⽤户的⽣存期内,bean保持了⽤户的信息,即“有状态”;⼀旦⽤户灭亡(调⽤结束或实例结束),bean的⽣命期也告结束。
即每个⽤户最初都会得到⼀个初始的bean。
简单来说,有状态就是有数据存储功能。
有状态对象(Stateful Bean),就是有实例变量的对象,可以保存数据,是⾮线程安全的。
⽆状态会话bean :bean⼀旦实例化就被加进会话池中,各个⽤户都可以共⽤。
即使⽤户已经消亡,bean 的⽣命期也不⼀定结束,它可能依然存在于会话池中,供其他⽤户调⽤。
由于没有特定的⽤户,那么也就不能保持某⼀⽤户的状态,所以叫⽆状态bean。
但⽆状态会话bean 并⾮没有状态,如果它有⾃⼰的属性(变量),那么这些变量就会受到所有调⽤它的⽤户的影响,这是在实际应⽤中必须注意的。
简单来说,⽆状态就是⼀次操作,不能保存数据。
⽆状态对象(Stateless Bean),就是没有实例变量的对象 .不能保存数据,是不变类,是线程安全的。
package com.sw;public class TestManagerImpl implements TestManager{private User user; //有⼀个记录信息的实例public void deleteUser(User e) throws Exception {user = e ; //1prepareData(e);}public void prepareData(User e) throws Exception {user = getUserByID(e.getId()); //2.....//使⽤user.getId(); //3..........}}⼀个有状态的bean⼆、解决有状态bean的线程安全问题Spring对bean的配置中有四种配置⽅式,我们只说其中两种:singleton单例模式、prototype原型模式。
EJB-会话Bean
成都信息工程学院软件工程系 王燮
会话Bean介绍
何时使用会话Bean
如果你的应用符合以下特性,为了得到更高的性能你 应该选择无状态会话Bean:
Bean的状态不包含客户端相关的数据 在一个单一方法调用中,Bean已经可以为客户端完成所需要 的工作。例如你可以用无状态会话Bean发一封邮件确认网络 订单 Bean需要从数据库获取一些客户端经常访问的只读数据
会话Bean介绍
成都信息工程学院软件工程系
会话Bean介绍
会话Bean对象是非持久性对象(就是说它的数据并不保存到数 据库。)。相对生命较短,一般与客户同步,存在于客户应用 与应用服务器交互的时间段内,当客户端结束运行,对应的会 话Bean也跟着结束并断开与客户端的联系(不保留特定客户端 的任何信息) 在EJB服务器崩溃时被删除 EJB 不表示数据库中的数据,但可以访问数据 作为一个客户的代表执行功能 可以加入事务 有两中子类型:
有状态会话Bean的生命周期
维护会话状态规则
有状态会话Bean实例的会话状态必须Java对象序列 化规则 有状态会话Bean实例中的所有非Transient类型的成 员变量都是会话状态的组成部分。 ejbPassivate should: Not rely on Transient flag Set references to null explicitly ejbActivate should offset the ejbPassivate work.
成都信息工程学院软件工程系 王燮
有状态会话bean的示例
会话Bean类CartBean
本例的会话Bean类文件取名为CartBean.java。和任何 会话Bean类一样,CartBean要满足如下要求: 实现业务方法,该方法签名必须遵循如下规则:
中间件_4ejb
1 EJB—J2EE的基石
EJB是Java平台上的服务器端构件模型。用于创建可伸缩 、跨平台、分布式应用,并且可创建具有动态扩展性的服 务器应用。 EJB的核心思想是将商业逻辑与底层的系统逻辑分开 1 开发者只需关心商业逻辑, 2 EJB容器实现目录服务、事务处理、持久性、安全性等 底层系统逻辑。
EJB
2 EJB构件
EJB中的beans可以分为: 会话bean(维护会话):表示客户同应用之间进行 的会话,是一种商业处理过程对象。 实体bean(处理事务):代表商业过程中处理的永 久性的数据。 消息驱动Beans(Message-driven Beans):结合了 会话bean 和 JMS的消息监听器的特性, 可异步接收 JMS 消息。
<entity EJB> 域逻辑
<database> 持久层
<servlet> 用户接口
<seesion EJB> 应用逻辑
业务逻辑
2.4 消息BEAN
是EJB2.0 对1.1的一个基础性更改,专门 设计处理JMS(java message system) Jms中消息收发是异步的 EJB有两种方式使用JMS
3.1.2 EJB 原理图
EJBs in Practice
EJB Obje ct
RMI机制
3
调用EJB
EJB容器是EJB构件运行的环境,是一层代替
EJB容器
3.2 EJB容器
bean执行相应服务的接口。 EJB容器负责提供 协调管理 资源管理 版本控制 动态性 一致性 安全 事务处理 RMI等功能
1.1 一种BEAN可用的资源,使用JMS API的
JavaEE的十三个技术规范
JavaEE的⼗三个技术规范Java 是⼀种⾮常棒的语⾔,健壮,跨平台运⾏,屏蔽了具体的平台环境的要求,也就是说只要⽀持java 虚拟机,就可以运⾏java程序。
下⾯,我们⼀起学习⼀下J2EE的⼗三种技术规范。
⼀、JDBC:Java Data Base Connectivity,数据库连接 ⼤家对微软的ODBC数据库访问的接⼝⽐较熟悉,⽽在java中创建数据库连接使⽤的是JDBC,学习过程中,JDBC和ODBC很相似,甚⾄JDBC⽐ODBC更好⽤,这是因为JDBC是在ODBC的基础上开发的,集成的ODBC的很多优点,同时他也是独⽴平台的。
⼆、JNDI:Java Naming and Directory Interfaces,Java的命名和⽬录接⼝ JNDI是⼀个Java应⽤程序设计接⼝,它为我们提供了查找和访问各种命名和⽬录服务的通⽤、统⼀⽅式。
JNDI避免了程序与数据库之间的紧耦合,使应⽤更加易于配置,便于部署。
有了JNDI,我们就不要关⼼“具体的数据库后台是什么?JDBC驱动程序是什么?JDBC URL 格式是什么?访问数据库的⽤户名和密码是什么?”这些问题了。
我们编写的程序不⽤关⼼对JDBC驱动的引⽤。
我们只需要在J2EE容器中定义⼀个数据源,然后通过这个数据源访问后台数据库。
参考:/zhaosg198312/article/details/3979435三、EJB:Enterprise Java Beans,企业级Java Beans、EJB是实现分布式业务逻辑的Java组件。
它以⼀个标准⾃动处理了如数据持久化、事务集成、安全对策等问题,为后台业务提供了⼀个标准⽅式。
EJB规范讨论了四中对象类型:⽆状态会话bean、有状态会话bean、实体bean、消息驱动bean。
Stateless Session Beans是⼀类不包含状态信息的分布式对象,允许来⾃多个客户端的并发访问。
⽆状态回话Bean没有资源集约性,访问的实例变量内容页不会被保存。
《J2ee企业级应用开发》课程标准
《J2EE企业级应用开发》课程标准一、课程定位《J2EE企业级应用开发》是计算机软件技术专业的一门专业课程,本课程所涵盖的知识和技能是作为软件技术专业学生的核心能力之一。
通过本课程的学习,使学生能够按照软件工程的理论和方法进行基于企业级JavaBean(EJB)技术的企业级应用系统的开发。
通过本课程及其实践环节教学,使学生能够使用JSP+EJB技术进行规范的Java企业级应用开发,并培养学生分析问题和解决问题的能力。
为以后进行实际的软件开发工作打下良好的专业知识和职业技能基础。
二、课程目标通过本课程的学习,培养和提高计算机软件技术专业学生的职业核心能力和素质。
使学生能够具备良好的职业素养,具备团队协作、与人沟通等多方面的能力;使学生具有较强的专业知识和技能,并具备进行自我专业知识拓展的能力。
让学生尽可能地达到入职即可工作,尽可能地做到与企业需求的“无缝结合”。
1、知识目标本课程涵盖了以下知识目标:(1)熟悉软件开发的基本流程;(2)熟悉Java EE应用和开发环境(Eclipse + Weblogic)的搭建和使用;(3)掌握无状态会话Bean(Session Bean)开发技术;(4)掌握有状态会话Bean(Session Bean)开发技术;(5)掌握Bean管理持久化实体Bean(BMP)的开发技术;(6)掌握容器管理持久化实体Bean(CMP)的开发技术;(7)了解消息驱动Bean的工作原理;(8)掌握JSP/Servlet技术、会话Bean开发技术和实体Bean开发技术的整合应用;2、能力目标(1)能查阅英文版的相关技术手册;(2)能通过团队协作完成软件项目的开发;(3)能对软件开发过程中遇到的各种错误和异常进行分析和排错;(4)能采用软件工程的思想和方法设计和实现企业级的应用软件项目;4、素质目标(1)具有良好的沟通表达能力、团队协作精神。
(2)具有良好的心理素质,顽强的意志力,勇于克服困难;(3)具有较强的身体素质,适应艰苦工作需要;(4)具有较扎实的业务基础,并能不断进行创新和自我超越。
Java-EE期末考试题及答案-桂电三院
Java EE期末考试•填空题:•Java EE为满足开发多层体系结构的企业级应用的需求,提出_组件-容器________的编程思想.Java EE应用的基本软件单元是_Java EE组件_______。
基本软件单元的运行环境被称为___容器________。
•两层体系结构应用程序分为__客户层_____和____服务器层_____。
•所谓的企业级应用程序,并不是特指为企业开发的应用软件,而是泛指那些为_大型组织部门__创建的应用程序.•在三层分布式企业应用程序中,包括_客户层____,__应用服务器层_____,____数据服务器层______三层。
•Java EE客户端组件既可以是__一个Web浏览器__________、___一个Applet________,也可以是一个__应用程序______。
•Servlet组件在进行重定向时,需要使用ServletResponse接口的方法是__sendRedirect()______。
•httpServletRequest提供了两个方法用于从请求中解析出上传的文件:___Part getPart (String name)___________和__Collection〈Part〉getParts()___________。
•Java EE 6提供的组件主要包括三类:_客户端组件____,__Web组件____,_业务组件____。
•Servlet配置参数保存在__ServletConfig()______________对象中,一个Servlet的该配置对象(能/否)___否(不能)__________被其他Servlet访问。
•Servlet支持两种格式的输入/输出流:__字符输入/输出流______和__字节输入/输出流_.•MIME的全称是_多媒体Internet邮件扩展____,ServletResponse中响应正文的默认MIME 类型为_text/plain______________,而HttpServetResponse中的响应正文的默认MIME类型为__text/html_________________。
分别介绍一下Session Bean和Entity Bean
分别介绍一下Session Bean和EntityBeanSession beans:Session beans 是一种作为单个的client执行的对象。
作为对远程的任务请求的相应,容器产生一个Session beans 的实例。
一个Session beans有一个client.从某种程度上来说,一个Session bean 对于服务器来说就代表了它的那个client.Session beans 也能用于事务,它能够更新共享的数据,但它不直接描绘这些共享的数据。
Session beans 的生命周期是相对较短的。
典型的是,只有当client保持会话的时候,Session beans 才是活着的。
一旦client退出了,Session beans 就不再与client相联系了。
Session beans被看成是瞬时的,因为如果容器崩溃了,那么client必须重新建立一个新的Session对象来继续会话。
一个Session bean典型的声明了与client的互操作或者会话。
也就是说,Session bean了在客户会话期间,通过方法的调用,掌握Client的信息。
一个具有状态的Session bean称为有状态的Session bean.当client终止与Session beans互操作的时候.会话终止了,而且,bean 也不再拥有状态值。
一个Session bean也可能是一个无状态的session bean.无状态的Session beans并不掌握它的客户的信息或者状态。
Client能够调用beans的方法来完成一些操作。
但是,beans只是在方法调用的时候才知道client的参数变量。
当方法调用完成以后,beans并不继续保持这些参数变量。
这样,所有的无状态的session beans的实例都是相同的,除非它正在方法调用期间。
这样,无状态的Session beans就能够支持多个client.容器能够声明一个无状态的Session beans.能够将任何Session beans指定给任何client.Entity Beans:Entity Beans对数据库中的数据提供了一种对象的视图。
EJB基础知识
Sun公司的Sun ONE(Open Net Environment,开放服务网络环境)和Microsoft公司的.NET 是两大Web服务技术体系。
Enterprise JavaBeans是J2EE体系结构的重要组成部分,是服务器端的可重用的组件模型。
EJB是运行于服务器端的Web层组件,也是EAI(企业应用集成)的设计和实施中常用的事务性中间件。
会话Bean技术:对于客户端,会话Bean被看作一种对象,该对象用于实现某些客户端需要的特殊的业务逻辑,这些业务逻辑一般地与一些事务或状态管理需求联系在一起。
任何给定的会话对象只能为一个客户端所用。
如果会话对象是无状态的,那么它可以再生和重用。
每一个会话Bean都需要提供一个Home接口,该接口可用于客户端编程,以调用基本的Bean生命周期方法。
每一个会话Bean的Home接口必须定义至少一个方法,即create<method>,它用于创建一个会话对象的实例,其中的<method>可以是使用create作为前缀的任意方法名和任意参数组合。
对于有状态的会话Bean,我们可以用任意有效个数的参数组合来定义许许多多的create 方法,对于无状态会话只有一种create方法,它只带有一个方法名,而不能带有任何参数。
每一个会话Bean还需要提供一个Remote接口,该接口用于客户端编程,以调用所有特定的业务方法,会话Bean已被构建成支持这些方法。
这些方法可以使用任意方法名和参数。
实体Bean技术:Home(本地)接口每一种实体Bean都需要提供一个Home接口,客户端使用该接口调用基本的EJB生命周期方法。
在运行过程中,每部署一次实体Bean,EJB容器只创建该接口的单独一个副本,通过该接口,可以创建、查找、销毁EJB的所有实例。
实体Bean的Home接口支持4种不同类的方法:create(创建)、finder(查找)、remove(清除)、home(本地)最后一种方法只适用于J2EE1.31.Create方法用于创建实体Bean的一个实例,可能存在0个或多个Create方法。
sb6-会话bean
6. 会话bean -有状态会话bean
实现在远程接口内声明的business函数,且名 称要与远程接口内声明的名称一样,相同的
传入参数及返回值类型。
实现SessionBean接口定义的四个callback函 数:setSessionContext(SessionContext ctx)、 ejbActivate()、ejbPassivate()、ejbRemove()
1.newInstance() 2.setSessionContext() 3.ejbCreate() 商业方法 ejbRemove() 客户端超时
就绪
ejbActivate() 恢复bean的状态
ejbPassivate() 保存bean的状态
钝化
有状态会话bean的生命周期
13
6. 会话bean -有状态会话bean
当EJB容器将有状态会话bean的实例从预备状
态转到钝化状态时,调用此函数。
EJB容器不会钝化正在执行于事务中的会话
bean,但可能会在两个事务中(执行完第一
个事务接着准备执行第二个时)执行钝化。
19
6. 会话bean -有状态会话bean
调用ejbPassivate(){ 关闭所有的打开资源 }或处理无法保存的会话状态变量
javax.ejb.CreateException。
4
6. 会话bean -有状态会话bean
远程接口 远程接口必须遵守以下规定: 类型为interface; 必须是public; 必须直接或间接继承javax.ejb.EJBObject。 EJBObject继承自java.rmi.Remote。
的事务。如果客户端没有开始事务,容器会开
Hibernate复习题1含答案
美斯坦福在线考试系统荆州理工G3 Hibernate科目: SCCEG3Hibernate总分: 100分时间: 60分钟一、单选题(共45题,每题2分,说明:选择一项正确的答案)1、下面关于Hibernate的说法,错误的是()A、Hibernate是一个“对象-关系映射”的实现B、Hibernate是一种数据持久化技术C、Hibernate是JDBC的替代技术他是对JDBC做了轻量级的对象封装D、使用Hibernate可以简化持久化层的编码参考答案: C2、在使用了Hibernate的系统中,要想在删除某个客户数据的同时删除该客户对应的所有订单数据,下面方法可行的是()A、配置客户和订单关联的cascade属性为save-updateB、配置客户和订单关联的cascade属性为allC、设置多对一关联的inverse属性为trueD、设置多对一关联的inverse属性为false参考答案: B详解3、下面一对多关联的配置中,存在哪些错误()<set name="orders" inverse="false" cascade="true"><one-to-many class="com.x.entity.Order"column="customer_id" /></set>A、inverse属性不可以设置为falseB、cascade属性不可设置为trueC、class="com.x.entity.Order"应为type="com.x.entity.Order"D、column属性不可再<one-to-many>节点内设置参考答案: B4、下面创建Criteria对象的语句中正确的是()A、Criteria c = query.createCriteria();B、Criteria c = query.addCriteria();C、Criteria c = session.createCriteria();D、Criteria c = session.createCriteria(User.class);参考答案: D5、下面关于Hibernate映射文件配置中dynamic-update属性说法正确的是()详解A、动态的修改,如果为true,只改变有改变的属性B、动态的修改,如果为true,只改变没有改变过的属性C、动态的修改,如果为true,改变所有的属性D、以上说法都错参考答案: A6、下面关系Hibernate对象的状态说话正确的是()临时持久化游离A、Hibernat的对象只有一种状态B、Hibernat的对象有2种状态C、Hibernat的对象有3种状态D、Hibernat的对象有4种状态参考答案: C7、Hibernate对象从瞬时到持久状态转换的方式有()。
平安集团java机试题题库
一、单选题1.关于WORKNET,下列描述错误的是?A 应用系统必须是通过UM认证才能使用WORKNETB WORKNET—ENGINE是核心引擎,负责任务的处理和流转C WORKNET目前是集中部署,各个系列公用服务D WORKNET提供公共的派工页面供业务系统重用2.CIF2的设计是以()为中心的A 保单B 产品C 服务D 客户3.对于实时交易,BIS系统对于一次连接请求最长的维持时间为A 30秒B 40秒C 1分钟D 50秒4.下列哪一个选项按照顺序包括了OSI模型的七个层次:()A 物理层数据链路层网络层传输层会话层表示层应用层B 网络层传输层物理层数据链路层会话层表示层应用层C 物理层数据链路层会话层网络层传输层表示层应用层D 物理层数据链路层传输层网络层会话层表示层应用层5.下述论述中不正确的是()A IPV6具有高效IP包头B IPV6增强了安全性C IPV6采用主机地址自动配置D IPV6地址采用64位6.关于HTTP与HTTPS以下说法错误的是()A http和https使用的都是80端口B http中的所有信息都是明文传输的C HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议要比http协议安全D http的连接很简单,是无状态的7.TCP协议在每次建立或拆除连接时,都要在收发双方之间交换_________报文。
A 一个B 两个C 四个D 三个8.网络操作系统和分布式操作系统的主要区别是()A 是否连接多台计算机B 各台计算机有没有主次之分C 网上资源能否共享D 计算机之间能否通信9.下面关于数据库系统基于日志的恢复的叙述中,哪一个是正确的A 利用更新日志记录中的改前值可以进行UNDO,利用更新日志记录中的改前值可以进行REDOB 利用更新日志记录中的改前值可以进行UNDO,利用更新日志记录中的改后值可以进行REDOC 利用更新日志记录中的改后值可以进行UNDO,利用更新日志记录中的改前值可以进行REDOD 利用更新日志记录中的改后值可以进行UNDO,利用更新日志记录中的改后值可以进行REDO10.下面列出的条目中,哪些是数据仓库的基本特征______。
《EJB3.0入门经典》总结
18
2.10 拦截器(Interceptor)
19
2.10 拦截器(Interceptor)
20
2.11 依赖注入(dependency injection)
在实际应用中,EJB可能会使用到其它EJB或资源。 在传统的开发中,我们要使用某个类对象,可以通过new
object的方式来使用它。
对每一个方法来说,我们可以使用一个安全限制注释来指定谁可 以运行这个方法
32
2.13 安全服务(Security service)
本例使用Jboss默认的安全域“other”,“other”安全域告诉 容器到classpath下的users.properties和roles.properties中 寻找密码和用户角色列表。
35
2.13 安全服务(Security service)
36
2.13 安全服务(Security service)
第三步,为业务方法定义访问角色(后台)。
@RolesAllowed 注释指定允许访问方法的角色列表, 如果角色存在多个,可以用逗号分隔。
@PermitAll 注释指定 任何角色都可以访问此方法。
@Interceptors({A.class,B.class,C.class}),如果只有一个拦截器可 以省略大括号。
软件工程师考试题库知识点
软件工程师考试题库知识点1、单选元素有一个cascade属性,如果希望Hibernate级联保存集合中的对象,casecade属性应该取什么值?()A.noneB.saveC.de(江南博哥)leteD.save-update正确答案:D2、填空题计算机软件是指与计算机系统操作有关的()以及任何()与之有关的文档资料。
正确答案:程序、数据3、单选数据字典中,一般不包括下列选项中的()条目。
A.数据流B.数据存储C.加工D.源点与终点正确答案:D4、名词解释内容耦合正确答案:指一个模块直接调用另一个模块的内部数据,或通过非正常入口而转入另一个模块内部。
5、单选模块内聚度越高,说明模块内各成分彼此结合的程度越()。
A、松散B、紧密C、无法判断D、相等正确答案:B6、多选在UML中,对象之间存在哪些关系?()A.关联B.泛化C.聚集D.继承正确答案:A, B, C7、填空题问题定义的来源是()。
正确答案:用户8、单选如果没有指定Cookie的时效,那么默认的时效是()A.一天B.永不过期C.会话级别D.一分钟正确答案:C9、多选SSL支持()加密,加密使用的位数越多,破译和找出原始位就困难。
A.40位B.64C.128位D.256正确答案:B, C10、单选下列选项中,属于需求分析阶段的任务的是()。
A.组装测试计划B.单元测试计划C.软件总体设计D.验收测试计划正确答案:D11、单选在软件质量要素的评价准则中,控制或保护程序和数据不被破坏、非法访问等机制的能力指的是()。
A.容错性B.检测性C.安全性D.可操作性正确答案:C12、填空题软件设计阶段,是把软件“()”的逻辑模型变换为“()”的物理模型。
正确答案:做什么;怎么做13、单选如何取得数据源()A.通过HttpB.通过ftpC.JNDID.通过Connection对象正确答案:C14、单选事务隔离级别是由谁实现的()。
A.java应用程序B.HibernateC.数据库系统D.JDBC驱动程序正确答案:C15、名词解释测量(measure)正确答案:是对产品或过程的某个属性的范围、数量、维度、容量或大小提供一个定量的指示。
金蝶面试题
第一部分java基础一、选择题〔单项选择〕〔12题共24分〕1、以下哪项不属于java基础数据类型(A) int, short, byte, long(B) float, double(C) boolean(D) String2、以下哪个类不是Collection的子类(A) List(B) Set(C) Map(D) Vector3、假设覆盖了某个类的hashCode 方法,则必须同时覆盖它的哪个方法(A) contains(B) clone(C) toString(D) equals4、以下关于java垃圾回收器描述错误的选项是(A) 垃圾回收可以有效地防止内存泄露,有效地使用可以使用的内存(B) 回收机制有分代复制垃圾回收和标记垃圾回收,增量垃圾回收等(C) 可以手动执行system.gc(),通知GC运行,GC会立刻执行垃圾回收(D) 程序员不能实时的调用垃圾回收器对某个对象或所有对象进行垃圾回收5、请问下例方法的返回结果是什么public int f(){int i=0;try{++i;}finally{++i;}return ++i;}(A) 1(B) 2(C) 3(D) 06、请分析下例代码的正确输出public static void main(String[] args){StringBuffer a = new StringBuffer("A");StringBuffer b = new StringBuffer("B");operat(a,b);System.out.println(a+","+b);}public static void operat(StringBuffer x, StringBuffer y){ x.append(y);y=x;}(A) A,B(B) A,A(C) AB,B(D) AB,AB7、下面isEmptyString函数正确的选项是(A)public boolean isEmptyString(String str){return str == null || str.length()==0;}(B)public boolean isEmptyString(String str){return str.length()==0 || str == null;}(C)public boolean isEmptyString(String str){return str =="" || str.length() ==0;}(D)public boolean isEmptyString(String str){return str.equals("") || str.length() ==0;}8、对于以下代码片段,有行号的代码执行顺序是class SuperTest{private String name ="Default Name"; // 1public SuperTest(){System.out.println("SuperTest Construct");// 2 }}class Test extends SuperTest{private static String const1="CONST"; // 3public Test(){System.out.println("Test Construct"); // 4}public static void main(String[] args){new Test(); // 5}}(A) 3,5,1,2,4(B) 5,3,4,1,2(C) 3,5,2,4,1(D) 5,3,4,2,19,基于下例声明Integer s = new Integer(9);Integer t = new Integer(9);Long u = new Long( 9 );表达式结果为true的是(A) (s==t)(B) (s.equals(u))(C) (s.equals(t))(D) (s.equals(9))10、如果使用了for(;;),则(A) 发生编译错误(B) 根本不进入循环(C) 这时个无限循环(D) 发生运行错误11、以下关于OverLoad 和Override的描述错误的选项是(A) 重写Overriding 是父类与子类之间多态性的一种表现(B) 重载Overloading 是一个类中多态性的一种表现(C) 某个方法被重写(Overriding) 指:在子类种定义某方法与其父类有相同的名称和参数(D) 在一个类中定义了多个同名的方法,它们或有不同的参数个数或有不同的参数类型,则称为方法的重载〔Overloading〕(E) 重载Overload的方法不可以改变返回值的类型12.以下说法错误的选项是()(A) ArrayList和Vector都是使用数组的方式存储数据(B) Vector是线程安全的(C) LinkedList相比ArrayList插入数据慢(D) LinkedList使用双向链表实现存储二、问答题(3题共6分)1.以下方法有那些错误或隐患(提示:至少2处)public void updateData(){String sql="update t_a set fok=1 where fid=?";Connection conn =getConnection();PreparedStatement ps =conn.prepareStatement(sql);ps.setString(0,"0001");ps.executeUpdate();ps.close();conn.close();}1.没有捕获异常try catch finally2.ps.setString(0,”0001”),错误,应是从索引1开始.2.请简单描述一下JVM加载class文件的原理及虚拟机访问类时的顺序3.优化以下代码并简述原因for(int i=0;i<1000;i++){for(int j=0;j<100;j++){for(int k=0;k<10;k++){function(i,j,k);}}}第二部分J2EE 应用开发一、选择题〔单项选择〕〔4题共8分〕1.创建一个会话EJB需要包含以下哪些部分(A) Home Interface,Remote Interface 和一个实现SessionBean 接口的类(B) Home Interface,Remote Interface 和一个继承SessionBean的类(C) Remote Interface 和一个实现SessionBean 接口的类(D)Remote Interface 和一个继承SessionBean 的类2.请列出EJB分类(A) SessionBean 和Entity Bean(B) Stateless Session Bean 和Stateful Session Bean(C)BMP和CMP(D)SessionBean 、Entity Bean和MessageDriver Bean3.EJB事务属性设置为Required时表示(A) 如果当前已经存在一个运行事务,EJB将加入该事务,如果没有运行的事务存在,则EJB容器新建一个事务(B) 如果此时已经有一个运行事务,该事务将被挂起,一个新的事务将在你的EJB调用过程中存在,当存储过程结束后,老的事务将恢复(C)如果当前已经存在一个运行事务,那么该bean将运行在这个事务中,如果不存在则该bean 运行在一个事务的环境中(D)必须存在一个运行的事务,否则将抛出javax.EJB.EJBTransactionRequiredException异常4.在EJB中,以下关于本地接口描述错误的选项是(A) EJB都是通过该接口创建实例(B) EJB2.0标准新增的内容,它使得Bean能够防止远程调用的开销(C) 必须在EJB部署的机器上使用,既客户程序和提供服务的组建必须在同一个JVM上运行(D) 所有数据和返回值都通过引用的方式船体,而不是传递值二、问答题〔1题共2分〕1、无状态会话Bean 和有状态会话bean 有何区别?第三部分Java 工具(1题共5分)1、请尽量例举一下你在Java开发实际工作中使用过,或者了解过的相关工具开放工具:测试工具:代码管理工具:性能分析工具:设计工具:反编译工具:应用服务器:构建工具:第四部分数据结构与算法一、选择题〔单项选择〕〔6题共6分〕1、链表不具有的特点是()A.可随机访问任一元素B.插入删除不需要移动元素C.不必事先估计存储空间D.所需空间与线性表长度成正比2、链式栈与顺序栈相比,一个比较明显的优点是()A.插入操作更加方便B.通常不会出现栈满的情况C.不会出现栈空的情况D.删除操作更加方便3、具有一个结点的完全二叉树的高度为1,那么具有65个结点的完全二叉树的高度为()A.8B.7C.6D.54、对有18个元素的有序表做对折查找,则查找A[3]的比较序列的下标依次为()A.1-2-3B.9-5-2-3C.9-5-3D.9-4-2-35、设一个栈的输入序列为A,B,C,D,则借助一个栈所得到的输出序列不可能是()A.A、B、C、DB.D、C、B、AC.A、C、D、BD.D、A、B、C5、对于Java容器类ArrayList,以下描述正确的选项是()A.ArrayList内部为链表结构B.ArrayList的数据访问接口没有考虑线程同步C.ArrayList具有容量自动扩展能力,所以不需要设置ArrayList的初始容量D.ArrayList访问元素接口get(i)和原始数组[i]访问具有同样的效率二、问答题(1题共4分)1、给定一个单向链表,请设计算法测试此链表是否形成闭环(即链表尾部节点又指向链表中,要求高效及内存消耗)(4分)第五部分系统设计一、选择题(单项选择)(4题共8分)1、使用UML建模时,假设需要描述跨越多个用例的单个对象的行为,使用___是最适合的A.协作图(Collaboration Diagram)B.序列图(Sequence Diagram)C.活动图(Activity Diagram)D.状态图(Statechart Diagram)2、UML中,一个用例和它的时序图之间是()的关系;在学校,一个学生可以选择多门课程,一门课程可以由多个学生选修,那么学生和课程之间是()关系;类A的一个操作调用类B的一个操作,且这两个类之间不存在其他关系,那么类A和类B之间是()关系;森林和树木之间是()关系(4个单项选择)A.关联B.聚合C.泛化D.实现E.依赖3、合成/聚合复用原则讲的是()A.要尽量使用合成/聚合,尽量不要使用继承B.要尽量使用继承,尽量不要使用合成/聚合C.要使用关联,不要使用聚合D.要使用合成,不要使用关联4、一个应用程序使用了大量的对象,造成了很大的存储开销,并且对象的大多数状态都可变为外部状态,这种情况下,选择以下哪种模式比较合适A.Proxy(代理)posite(组成)C.Flyweight(享元)D.Facade(外观)二、问答题(1题共2分)1、写一个Singleton(单态模式)类第六部分软件工程一、选择题(单项选择)(7题共7分)1、程序的三种基本控制结构是A.过程、子程序和分程序B.顺序、选择和重复C.递归、堆栈和队列D.调用、返回和转移2、耦合关系从强到弱的顺序依次为A.组合、泛化、依赖、聚合B.泛化、组合、聚合、依赖C.依赖、泛化、组合、聚合D.聚合、组合、泛化、依赖3、具有风险分析的软件生存周期模型是A.瀑布模型B.喷泉模型C.螺旋模型D.增量模型4、原型化方法是用户和设计者之间执行的一种交互构成,尤其适用于A.需求不确定性高的系统B.需求确定的系统C.管理信息系统D.实时系统5、模块内聚度越高,说明模块内各成分彼此结合的程度越A.松散B.紧密C.相等D.无法判断6、软件测试方法中,黑盒、白盒测试是常用的方法,其中白盒测试主要用于测试A.结果合理性B.软件外部功能C.程序正确性D.程序内部逻辑7、瀑布模型是以文档为驱动,适合___的软件项目的模型A.需求较明确的软件项目B.已有产品的升级C.需求模型的软件项目D.陌生领域的软件项目二、问答题(请从以下2题中任选一题作答,共3分)1、在软件开发过程中,有什么措施和方法可以提高和确保软件产品的质量?你之间参与的具体哪个项目用了以上的一种或者多种措施或方法?最终到达的效果如何?2、有以下几种常见的开发模型:瀑布模型(Waterfall Model)、快速原型模型(Rapid Prototype Model),螺旋模型(Spiral Model)、迭代开发模型(RUP),请选取以上的一种开发模型描述他们的特点和优点和缺点。
高级软件工程师第三套试题
一.单选题(60题)1)在确认测试的叙述中不正确的是(C)。
A 确认测试是为了验证软件的功能和性能及其他特性是否与用户的要求一致。
B 确认测试的内容包括功能测试和性能测试。
C 安装测试不属于确认测试的内容D 它着重考虑软件是否满足确认测试的内容。
2) 下列关于测试用例的重要性有误的是(C)。
A 测试用例构成了设计和制定测试过程的基础。
B 测试设计和开发的类型以及所需的资源主要都受控与测试用例。
C 测试的“深度”与测试用例的数量成反比例。
D 测试用例通常根据它们所关联的测试类型或测试需求来分类,而且将随类型和需求进行相应地改变。
3)常用的设计模式有(B)种。
A 20B 23C 18 D254)关于创建模式和构造函数的说法,正确的是(B)。
A 因为有构造函数,所以没有必要使用创建模式。
B 构造函数无法描述被返回的对象,而选用名字合适的工厂方法可以使类型的使用更加容易C 工厂模式每次返回的类型都是具体的类型,而不是子类型D 创建模式不能把创建对象外部化。
5)关于Oracle数据库逻辑备份和恢复,正确的是(C)A 数据库工作在非归档状态B 不需要给数据库管理员赋予相应的角色权限C 用expert命令文件实现逻辑备份D 用imp命令文件实现逻辑恢复6)Oracle数据库的数据文件的特征有(C)。
A 一个数据文件与多个数据库联系B 数据文件建立之后,可以改变大小。
C 一个表空间由一个或多个数据文件组成D 数据文件包括部分数据库数据7)以下自定义实体正确的是(B)。
A <!ENTITY city 北京>B <!ENTITY city “北京”>C <!ENTITY book SYSTEM “D:\xml\dtd\book.xml”>D <!ENTITY %bookname “狂人日记”>8)下面关于uml的叙述正确的是(C)。
A UML是Unified Model Language的缩写B UML是一个通用的可视化编程语言C UML用于对软件进行描述、可视化处理、构造和建立软件系统产品的文档D UML只适用与微软开发工具使用9)UML合法性问题是指(A)。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
目标
• • • • • 无状态会话Bean的特性 如何编写无状态会话Bean 如何调用无状态会话Bean 无状态会话Bean的生命周期 部署描述文件
无状态会话Bean的特性
• 无状态会话Bean的含义
– 通过方法调用,实现一定的功能
• 无状态会话Bean的特性
– 执行方法调用,直接返回结果 – 不保存客户的状态 – 需要的系统资源更少 – 执行速度更快
import javax.ejb.*; Import java.rmi.*; public interface Hello extends EJBObject { public String hello() throws RemoteException; }
Bean class(Bean类)
• 必须实现 javax.ejb.SessionBean 接口 – SessionBean接口提供一些callb对象创建EJB对象 调用EJB对象的商业方法 清除EJB对象
实例:
Hashtable env = new Hashtable(); env.put(Context.INITIAL_CONTEXT_FACTORY, "weblogic.jndi.WLInitialContextFactory"); env.put(Context.PROVIDER_URL, "t3://localhost:7001"); Context ctx = new InitialContext(env); Object obj = ctx.lookup("HelloHome"); HelloHome home = (HelloHome) PortableRemoteObject.narrow(obj,Hel loHome.class); Hello helloObj = home.create();
无状态会话Bean的用途
• 任何的单一功能的实现 – 登陆的验证 – 完成单一的算法
如何编写无状态会话Bean
• 编写无状态会话Bean需要三个部分 – Home interface (主接口)
• 创建EJB的实例 • 提供生命周期管理方法,管理EJB实例
– Remote interface(远程接口)
EJB的生成和部署
1. 编写EJB的Java源文件:Remote接口, Home接口,EJB的Bean类 2. 将源文件编译成class文件 3. 编写部署描述文件 4. 使用jar工具,创建一个包含部署描述和类 文件的Ejb-Jar文件 5. 将新生成Ejb-Jar文件部署到容器中
客户端如何调用EJB
远程接口
• 必须 extend javax.ejb.EJBObject 接口,提 供方法有:
getEJBHome() getHandle() getPrimaryKey() isIdentical() remove()
• 所有的方法必须throws RemoteException
远程接口: 举例
Home接口:举例
import javax.ejb.*; import java.rmi.*; public interface HelloHome extends EJBHome { Public Hello create() throws RemoteException, CreateException; }
Bean 类:remote 接口的实现
public String hello( ) { return "Hello, Welcome to EJB World"; }
Bean class:callback 方法的实现
public void ejbRemove() { System.out.println("ejbRemove()"); } public void ejbActivate() { System.out.println("ejbActivate()"); } public void ejbPassivate() { System.out.println("ejbPassivate()"); } public void setSessionContext(SessionContext ctx) {
• ejbActivate( ) • ejbPassivate() • setSessionContext(…) • ejbRemove()
• Class必须为public – 必须有一个public 构造方法而且没有参数 • 必须实现远程接口中定义的每个方法
Bean 类:Home 接口的实现
import javax.ejb.*; public class HelloBean implements SessionBean { public void ejbCreate() { System.out.println("ejbCreate()"); } //code for remote interface //code for callback methods
• 定义自己的商务方法 • 提供一些辅助的方法,例如:getHandle( )
– Bean class(Bean类)
• 实施所有的在Home interface和Remote interface定义的方法 • 实施自己定义的商务方法
Home interface (主接口)
• 必须extend javax.ejb.EJBHome 接口 – EJBHome 提供一些有用的方法, getHomeHandle(),getEJBMetaData()和 remove() • 必须有一个create 方法 – 必须返回会话Bean的远程接口的类型 – 必须throw CreateException • 所有定义的方法,包括create方法,必须throw RemoteException • 在Home interface定义的方法,应该在Bean class中有相应的方法
无状态会话Bean的生命周期
部署描述文件ejb-jar.xml
<ejb-jar> <enterprise-beans> <session> <ejb-name>Hello</ejb-name> <home>HelloHome</home> <remote>Hello</remote> <ejb-class>HelloBean</ejb-class> <session-type>Stateless</sessiontype> <transactiontype>Container</transaction-type> </session>
整个EJB的执行过程:
1. 2. 3. 4. 5. 6. 客户端通过JNDI检索Home对象的引用; JNDI返回Home对象的引用; 请求创建一个新的EJB对象; 创建EJB对象; 返回EJB对象; 调用商务方法;
练习1
• 修改所给的源程序,实现新的功能。并部 署。
回顾
• • • • • 无状态会话Bean的特性 如何编写无状态会话Bean 如何调用无状态会话Bean 无状态会话Bean的生命周期 部署描述文件