background image

 

运行时异常,但是并不要求必须声明抛出未被捕获的运行时异常。

6、说出 Servlet 的生命周期,并说出 Servlet 和 CGI 

 

区别。

Servlet 被服务器实例化后,容器运行其 init 方法,请求到达时运行其 service 方法,
service 方法自动派遣运行与请求对应的 doXXX 方法(doGet,doPost)等,当服务器决
定将实例销毁的时候调用其 destroy

 

方法。

与 cgi 的区别在于 servlet 处于服务器进程中,它通过多线程方式运行其 service 方法,一
个实例可以服务于多个请求,并且其实例一般不会销毁,而 CGI 对每个请求都产生新的
进程,服务完成后就销毁,所以效率上低于 servlet  

7、说出 ArrayList,Vector, LinkedList

 

的存储性能和特性

ArrayList 和 Vector 都是使用数组方式存储数据,此数组元素数大于实际存储的数据以便
增加和插入元素,它们都允许直接按序号索引元素,但是插入元素要涉及数组元素移动
等内存操作,所以索引数据快而插入数据慢,Vector 由于使用了 synchronized 方法(线
程安全),通常性能上较 ArrayList 差,而 LinkedList 使用双向链表实现存储,按序号索
引数据需要进行前向或后向遍历,但是插入数据时只需要记录本项的前后项即可,所以

 

插入速度较快。

8EJB 是基于哪些技术实现的?并说出 SessionBean

和 EntityBean 的区别,StatefulBean 和 StatelessBean

 

的区别。

EJB 包括 Session Bean、Entity Bean、Message Driven Bean,基于 JNDI、RMI、JAT 等技

 

术实现。
SessionBean 在 J2EE 应用程序中被用来完成一些服务器端的业务操作,例如访问数据
库、调用其他 EJB 组件。EntityBean

 

被用来代表应用系统中用到的数据。

对于客户机,SessionBean 是一种非持久性对象,它实现某些在服务器上运行的业务逻

 

辑。
对于客户机,EntityBean 是一种持久性对象,它代表一个存储在持久性存储器中的实体

 

的对象视图,或是一个由现有企业应用程序实现的实体。
Session Bean 

 

还可以再细分为 Stateful Session Bean   

与 Stateless Session Bean ,这两

 

种的 Session Bean

 

都可以将系统逻辑放在 method

 

之中执行,不同的是 Stateful 

Session Bean 可以记录呼叫者的状态,因此通常来说,一个使用者会有一个相对应的

 

Stateful Session Bean 的实体。Stateless Session Bean 虽然也是逻辑组件,但是他却不

 

负责记录使用者状态,也就是说当使用者呼叫 Stateless Session Bean 的时候,EJB 
Container 

 

并不会找寻特定的 Stateless Session Bean 

 

的实体来执行这个 method。换言之,

 

很可能数个使用者在执行某个 Stateless Session Bean   

的 methods 时,会是同一个 

Bean 

 

的 Instance 

 

在执行。从内存方面来看, Stateful Session Bean   

与 Stateless Session 

Bean 

 

比较, Stateful Session Bean 

 

会消耗 J2EE Server 

 

较多的内存,然而 Stateful 

Session Bean 

 

的优势却在于他可以维持使用者的状态。