`
caizhongda
  • 浏览: 188215 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

java 面试 笔试题 大汇总( 连载二 )

    博客分类:
  • 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,基于JNDIRMIJTA等技术实现。

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&&&的区别。

 

       &&&都可作为逻辑运算符“与”使用,但是&&是“短路与”,运算时先判断符号前面的表达式的值,如果能够确定整个表达式的值,则不进行符号后面的表达式的运算。

 

 

附加题:::(感兴趣的可以做一下哈)

 

1.Java是纯面向对象的语言吗?

 

2.int不是对象类型,解释一下,为什么可以用

   

    int[] i = new int[3];



 

 

 

3.为什么 基本数据类型(primitive types)要有包装类,例如Integer

 

4. JVM 在调用方法时,是在哪里执行的,Registers、The stack ,  The heap。

 

5. 写个小程序证明 : byte是8bits,char是16bits.

 

 

 

 java面试笔试题大汇总 (连载三)

 

 待续......(帮忙顶一下哈....谢谢)。 

15
7
分享到:
评论
6 楼 wangwei1988 2009-05-18  
很有用
还请楼主解释那5道附加题,特别是第2题和第5题
5 楼 C_J 2009-05-16  
我的答案:

1,是
2,程序运行从右至左原则(可能回答不对)
3,晕,为了OO
4,Register
5,输出两个变量地址的差
4 楼 FeiXing2008 2009-05-15  
哥们这个有点问题:

LinkedList的插入速度是最慢的,因为在插入的时候内部是要排序的,所以插入的速度是最慢,而查询的速度是最快的。

谁说LinkedList是会排序的吖,根本就没有排序,ArrayList一般插入时是快的,如果满过cap的时候就要复制原来的数到大数组去了,这时就比较费时。
3 楼 yuankai 2009-05-14  
7、说出ArrayList,Vector, LinkedList的存储性能和特性
ArrayList和Vector都是使用数组方式存储数据,此数组元素数大于实际存储的数据以便增加和插入元素,它们都允许直接按序号索引元素,但是插入元素要涉及数组元素移动等内存操作,所以索引数据快而插入数据慢,Vector由于使用了synchronized方法(线程安全),通常性能上较ArrayList差,而LinkedList使用双向链表实现存储,按序号索引数据需要进行前向或后向遍历,但是插入数据时只需要记录本项的前后项即可,所以插入速度较快。


哥们这个有点问题:

LinkedList的插入速度是最慢的,因为在插入的时候内部是要排序的,所以插入的速度是最慢,而查询的速度是最快的。

Vector的速度比LinkedList速度要快,因为Vector插入的时候内部是不作排序的,但是 Vector使用了synchronized,基于线程安全,所以Vector的速度要比ArrayList慢。

最快的是ArrayList,ArrayList内部即不排序,也没有使用了synchronized,所以他在插入的时候是最快的。
2 楼 yangjueshe 2009-05-12  
还有吗,期待中啊
1 楼 haidii 2009-05-12  
顶!   

相关推荐

Global site tag (gtag.js) - Google Analytics