`

Java程序员面试题之二

阅读更多

6、说出Servlet的生命周期,并说出ServletCGI的区别。

Servlet被服务器实例化后,容器运行其init方法,请求到达时运行其service方法,

service方法自动派遣运行与请求对应的doXXX方法(doGetdoPost)等,

当服务器决定将实例销毁的时候调用其destroy方法。

 

CGI的区别在于:

 

Servlet处于服务器进程中,它通过多线程方式运行service方法,

一个实例可以服务于多个请求,并且其实例一般不会销毁。

 

CGI对每个请求都产生新的进程,服务完成后就销毁,所以效率上低于Servlet

 

 

7、说出ArrayList,Vector, LinkedList的存储性能和特性

ArrayListVector都是使用数组方式存储数据,此数组元素数大于实际存储的数据以便增加和插入元素,

它们都允许直接按序号索引查询元素,但是插入元素要涉及数组元素移动等内存操作,所以索引查询数据快而插入数据慢

 

Vector由于使用了synchronized方法(线程安全),通常性能上较ArrayList差。

 

LinkedList使用双向链实现存储,按序号索引查询数据需要进行前向或后向遍历,但是插入数据时只需要记录本项的前后项即可,所以插入速度较快

 

 

8EJB是基于哪些技术实现的?并说出SessionBeanEntityBean的区别,StatefulBeanStatelessBean的区别。

 

EJB包括Session BeanEntity BeanMessage Driven Bean,基于JNDIRMIJAT等技术实现。

 

SessionBeanJ2EE应用程序中被用来完成一些服务器端的业务操作,例如访问数据库、调用其他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 的优势却在于他可以维持使用者的状态。

 

 

9Collection Collections的区别。

 

Collection是集合类的上级接口,继承与他的接口主要有Set List.

Collections是针对集合类的一个帮助类,他提供一系列静态方法实现对各种集合的搜索、排序、线程安全化等操作。

 

 

10&&&的区别。

&和&&都可以用作逻辑与的运算符,表示逻辑与(and)。

当运算符两边的表达式的结果都为true时,整个运算结果才为true,否则,只要有一方为false,则结果为false。

 

&&还具有短路的功能,即如果第一个表达式为false,则不再执行第二个表达式。

 

例如:

对于if(str != null && !str.equals(“”))表达式,

当str为null时,后面的表达式不会执行,所以不会出现NullPointerException。

如果将&&改为&,则会抛出NullPointerException异常。

 

If(x==33 & ++y>0) y会增长,If(x==33 && ++y>0) y不会增长。

 

此外,
&还可以用作位运算符,当&操作符两边的表达式不是boolean类型时,&表示按位与操作。

我们通常使用0x0f来与一个整数进行&运算,来获取该整数的最低4个bit位,例如,0x31 & 0x0f的结果为0x01。

 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics