5、Java运行时异常与一般异常有何异同?
异常表示程序运行过程中可能出现的非正常状态,运行时异常表示虚拟机的通常操作中可能
遇到的异常,是一种常见运行错误。Java编译器要求方法必须声明抛出可能发生的非运行时
异常,但是并不要求必须声明抛出未被捕获的运行时异常。
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 差,而 LinkedL
ist 使用双向链表实现存储,按序号索引数据需要进
行前向或后向遍历,但是插入数据时只需要记录本项的前后项即可,所以插入速度较快。
8、EJB 是基于哪些技术实现的?并说出 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 的优势却在于他可以维持使用者的状
态。[size=large][/size]
异常表示程序运行过程中可能出现的非正常状态,运行时异常表示虚拟机的通常操作中可能
遇到的异常,是一种常见运行错误。Java编译器要求方法必须声明抛出可能发生的非运行时
异常,但是并不要求必须声明抛出未被捕获的运行时异常。
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 差,而 LinkedL
ist 使用双向链表实现存储,按序号索引数据需要进
行前向或后向遍历,但是插入数据时只需要记录本项的前后项即可,所以插入速度较快。
8、EJB 是基于哪些技术实现的?并说出 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 的优势却在于他可以维持使用者的状
态。[size=large][/size]