1.EJB包括(SessionBean,EntityBean)说出他们的生命周期,及如何管理事务的?
答:1.SessionBean:Stateless Session Bean(无状态会话)生命周期由容器决定,客户机请求建立实例时,容器不一定会创建bean实例,而是找一个现有的bean实例提供给客户机。
Stateful Session Bean(有状态会话),客户机请求建立实例时,容器必须建立一个bean实例,提供给客户机。
2.EntityBean:Entity Beans只要数据库的数据存在,就一直存活着,生命周期能够被容器或自己管理。
3.EJB通过以下技术管理实务:对象管理组织(OMG)的对象实务服务(OTS),Sun Microsystems的Transaction Service(JTS)、Java Transaction API(JTA),开发组(X/Open)的XA接口。
2.应用服务器有那些?
答:Jboss,tomcat,BEA WebLogic Server,IBM WebSphere Application Server,Oracle9i Application Server。
3.给我一个你最常见到的runtime exception?
答:BufferOverflowException,ClassCastException,ConcurrentModificationException,IndexOutOfBoundsException,NoSuchElementException,NullPointerException
4.接口是否可继承接口? 抽象类是否可实现(implements)接口? 抽象类是否可继承实体类(concrete class)?
答:可以。可以。可以。
5.List, Set, Map是否继承自Collection接口?
答:List, Set是。Map不是。
6.说出数据连接池的工作机制是什么?
答:当服务器启动时,会创建一定数量的连接,最大维持连接数可以设置,并维持少于最大连接数运行。当客户端需要连接时,会返回一个未使用的连接并记录为忙。如果当前没有空闲连接,池驱动程序会再生成一定数量的连接,这个可以由最大连接数设置,当调用者使用完之后,池驱动程序标记该连接为空闲,其他调用者就可以使用它了。
参数说明:
最大维持连接数:没有任何请求时在连接池中可以存在的连接数
最大连接数:连接池中最多可以存在的连接个数。
最大等待时间:当断开连接时,超过最大维持连接数的连接不会马上销毁,最大等待时间过后它才会销毁。
连接池是将已经创建好的连接保存在池中,当有请求来时,直接使用已经创建好的连接对数据库进行访问。这样省略了创建连接和销毁连接的过程。
现在假设:最大维持连接数是10,最大连接数是20,最大等待时间是10000(毫秒)
其过程:最开始在连接池中有10个连接(最大连接数),当有用户申请连接时,其将一个连接分配用户,直到连接池中的10个连接全都分配出去,当第 11个用户申请连接时,它将创建第11个连接并分配给该用户,直到把第20个连接(最大连接数)分配给第20个用户,当第21个用户申请连接时,它需要等 待,直到前面的20个用户中某一个断开了连接,才会把那个连接分配给第21个用户,当用户断开连接时(第11至20个连接),该连接不会立刻被释放而是需 要等待10000毫秒(最大等待时间),才被释放,当没有用户连接时,连接池内还保持10个连接。
7.abstract的method是否可同时是static,是否可同时是native,是否可同时是synchronized?
答:可以,但是没有意义。
8.数组有没有length()这个方法? String有没有length()这个方法?
答:没有,有length属性。有。
9.Set里的元素是不能重复的,那么用什么方法来区分重复与否呢? 是用==还是equals()? 它们有何区别?
答:用equals()。基本数据类型时,==比较的是数值;引用数据类型时,==比较的是内存地址。equals()默认比较的是内存地址,如要比较数值必须重写。
10.构造器Constructor是否可被override?
答:构造器Constructor不能被继承,因此不能重写Overriding,但可以被重载Overloading。