《Java笔试面试宝典.docx》由会员分享,可在线阅读,更多相关《Java笔试面试宝典.docx(92页珍藏版)》请在优知文库上搜索。
1、EJB1:EJB:答:EnterpriseJavaBean相当于DCOM,即分布式组件。它是基于JaVa的远程方法调用(RMI)技术的,所以EJB可以被远程访问(跨进程、跨计知机)。但EJB必须被布署在诸如Wcbsperc.Wcb1.ogic这样的容器中,EJB客户从不直接访问真正的EJB组件,而是通过其容器访问EJB容器是EJB组件的代理,EJB组件由容器所创建和管理。客户通过容器来访问我正的EJB组件。答:Enterprisejavaboan容器更具有行业领域特色.他提供给运行在其中的组件EJB各种管理功能。只要满足J2EE规范的EJB放入该容器,马上就会被容器进行高效率的管理。并且可以通
2、过现成的接口来获得系统级别的服务。例如邮件服务、事务管理。RMI:(RemoteMethodInvocation)远程方法调用答:RMl(RemoteMethodInvocation*远程方法调用)是用JaVa在JDK1.I中实现的,它大大增强了JaVa开发分布式应用的能力。JaVa作为一种风度一时的网络开发语言,其巨大的威力就体现在它强大的开发分布式网络应用的能力上,而RMl就是开发百分之百纯JaVa的网络分布式应用系统的核心解决方案之一。其实它可以被看作是RPC的JaYU版本。但是传统RPC并不能很好地应用于分布式对象系统。而JavaRMI则支持存储于不同地址空间的程序级对象之间彼此进行通
3、信,实现远程对象之间的无缝远程调用.2,EJB种类、作用答:EntityBean一一用于描述一个永久的对象。SessionBean一一描述任务或者工作流的模型,并且协谢Bean之间的交互。Message-DriverBean用在基于J2EE应用程序中处理异步JMS消息。3实体bean,CMP,BMP写法区别?答:CMPentitybean不需要在bean中编写数据库操作的代码:可以让容潜做这件事。BMPentitybean在bean类中直接编写数据库调用,以及对固定存储的任意类型的访问,来管理bean的持久性。4:Find与SeleCt方法的区别?的访问能力.它定义了对于客户端可见的业务方法.
4、组件接口中的业务方法必须符合bean类中的实现.7、JMS消息传递的方式?答:点到点(POinl-Io-POinl)消息通过队列进行发送.发布与订阅(publish-and-subscribe,pub/sub)消息通过标题传递.8、EJB客户*访问后台EJB的代码?答:pI92,pl939、有状态sessionbean与无状态sessionbean的区别?答:statefulSCSSiOnbCan维护客户端会话状态.它们必须属于,个Il只属于一个客户端.激活/钝化,开销大.statelesssession不维护一个客户端的会话状态它们被放入实例池中,因此可被多个用户共用,开销小,效率高。10、
5、本地视图与远程视图的区别?答:远程视图-它的想法就是远程调用将在两台不同JvM之间执行.远程调用这些操作使得相关网络开销会更高与对象的位置无关.也不会在乎是否在一个JVM.本地视图-它的想法就是本地调用将在相同的JYM中执行.没有网络开销.操作效率更高,因为客户端使用本地对象调用bean上的服务,限制在本地实现中,而且不需要做到与位置无关.11Qrr事物属性MandatOry-当使用这个值时,bean方法被调用时必须有个事务已经处在运行中.NCVer-如果在现有事务中调用此bean,容器将抛出java.rmi.ReinotException.WAR:Web归档:包含一个Web工程所有组件的压缩
6、文件。EAR:企业归档;包含一个企业应用所有组件的压缩文件。Hibernate1. Hibernate的检索方式答:导航对象图检索OlD检索HQ1.检索QBC检索本地SQ1.检索2. Forward与Global-Forward的区别答:Forward是根据Actionreturn的值找到对应的JSP页。当多个ACtion共同return同-个值时,可将这个Forward元素写在GIobaI-Forward中。3. 持久化对象的三种状态,代表含义.答:临时状态刚用new语句创建,未被持久化,不处于session的缓存中。持久化状态-一已经被持久化,处于session的缓存中。游离态己经被持久化
7、,但不处Fsession的缓存中.4、三种检索策略是什么,分别适用于哪种场合?答:立即检索一一优点:对应用程序完全透明,缺点:SeIeCt语句数目多。适用:类级别。延迟检索一一优点:由应用程序决定加载哪些对象,可以避免执行多余的SeIeCI语句以及避免加载不需要访问的对彖,节省内存空间,提高检索效率。映点:应用程序如果要访问游离态的代理类实例,必须保证它在持久化时已经被初始化。适用:一对多或多对多关联。应用程序不需要立即访问或者根本不会访问的对象。迫切左外连接检索:优点:对应用程序完全透明,不管对象处于持久化状态还是游窗状态,应用程序都可以方便的从一个对象导航到另一个与它相关联的对象。使用了外
8、连接,SelQCt语句数目少.缺点:可能会加载程序不许要访问的对象,匆杂的数据库表连接形象检索性能。适用:一对一或多对一关联。应用程序需要立即访问的对象。数据库系统具有良好的表连接性能。4、ORM解决的不匹配向JS(域模型与关系模型之间存在的不匹配)答:域模型是面向对象的,关系模型是面向关系的。域模型中有继承关系,关系模型中不能直接表示继承关系。域模型中有多对多关联关系,关系模型中通过连接表来表示多对多关联关系。域模型中有双向关联关系,关系模型中只有单向参照关系,而且总是many参照one方。域模型提倡精粒度模型,关系模型提倡粗粒度模型.5、映射继承关系的三种方式?P424答:(1)继承关系树
9、的每个具体类对应一张表:在具体类对应的表中,不仅包含和具体类属性对应的字段,还包括与具体类的父类属性对应的字段.(2)继承关系树的根类对应张表:在根类对应的表中,不仅包括根类属性对应的字段,还包括根类的所有子类属性对应的字段。(3)继承关系树中的每个类对应张表,每个表中只包括和这个类本身属性对应的字段,子类的表参照父类对应的表。6、SeSSion的find。方法以及QUery接口的区别.答案SeSSion类的find。方法以及QUery接口都支持HQ1.枪索方式。这两者的区别在于,前行只是执行些简单HQ1.查询语句的便捷方法,它不具有动态绑定参数的功能,而且在Hibernate3.X版本中,己
10、经淘汰/find。方法:而QUery接口才是真正的HQ1.查i句接口,它提供了以上列出的各种查询功能。7. ibemate的配置文件(hibernate,properties)中hibernate,show-sql=true/fIase在开发阶和测忒段应设置为O在发布阶段应设置为O:IrueUalse8. 映射一对多双向关联关系中设置SET元素:请写出级联保存:和更新、级联删除应在sei元素中需要设.四那些子元素?(标明关系、避面重耳执行多余SQ1.语句)Namecascadekeycolumnone-to-manyinverse9. list要的实现类有那些?并按KR存储结构、机制简单的说一
11、下.1.inked1.istArry1.ist4Vector41.inked1.ist采用链表数据结构、Hry1.ist代表大小可变的数组。Vector与Arry1.isl功能比较相似,区别在于Vector采用同步、AITy1.iSt没有采用。10以下暮个不是Hibernate的检索方式:A、导航对象图枪索B、OID检索C、ORM检索D、QBC检索E、本地SQ1.检索I,HQ1.检索答案:C11 .持久化类的类名是CUSto三er.java,写出相应的映射文件名答案:Customer,hb11ux11l12 .继承的三种方式(1)维承关系树的每个具体类对应张表:在具体类对应的表中,不仅包含和具
12、体类属性对应的字段,还包括与具体类的父类属性对应的字段.(2)维承关系树的根类对应张表:在根类对应的表中,不仅包括根类属性对应的字段,还包括根类的所有子类屈性对应的字段。(3)继承关系树中的每个类对应一张表,每个表中只包括和这个类本身属性对应的字段,子类的表参照父类对应的表。13 .Session接口是Hibernate应用使用最广泛的接口SeSSiOn也被称为持久化管理器,它提供了和持久化相关的操作,如添加、更新、JM除、加就和查询对象.14 .请倚述Session的特点有哪些?答案:U)不是线程安全的,因此在设计软件架构时,应该避免多个线程共享同一个Session实例。(2)Session
13、实例是轻量级的,所谓轻量级是指它的创建和销毁不需要消耗太多的资源。这意味着在程序中可以经常创建或销毁SeSSion对象,例如为银个客户请求分配单独的Session实例,或者为每个工作单元分配单独的Session实例;(3)在SeSSion中,每个数据库操作都是在一个事务(transaction)中进行的,这样就可以隔离开不同的操作(甚至包括只读操作)。12,Hibernate中采用XM1.文件来配置对象京系映射的优点有那些?答案:Hibernate既不会渗透到上层域模型中,也不会渗透到卜层数据模型中,软件开发人员可以独立设计域模型,不必强迫遵守任何规范。数据库设计人员可以独立设计数据模型,不必
14、强迫遵守任何规范.对象-关系映射不依赖丁任何程序代码,如果需要修改对象关系映射,只需修改XM1.文件,不需要修改任何程序,提高了软件的灵活性,并且使维护更加方便。13、在Hibemate应用中JaVa对象的状态有舞些?答案:1临时状态(transient):刚刚用new语句创建,还没有被持久化,不处于Session的缓存中。处于临时状态的Java对象被称为临时对象。2持久化状态(PCrSiStent):己经被持久化,加入到S。SSion的缓存中。处F持久化状态的Java对象被称为持久化对象。3游离状态(detuched):已经被持久化,但不再处于SeSSion的缓存中。处于游离状态的Java对
15、象被称为游离对象。14、叙述Session的t存的作用答案:(1)减少访问数据库的扬率.应用程序从内存中读取持久化对象的速度显然比到数据库中杳询数据的速度快多了,因此SeSSion的缓存可以提高数据访问的性能。(2)保证缓存中的对象与数据库中的相关记录保持同步。当缓存中持久化对象的状态发生了变换,SeSSiOn并不会立即执行相关的SQ1.语句,这使得SeSSiOn能够把几条相关的SQ1.语句合并为条SQ1.语句,以便减少访问数据库的次数,从而提而应用程序的性能.15、比较Hibernate的三种检索策略优缺点;答案:1立即检索;优点:对应用程序完全透明,不管对象处于持久化状态,还是游离状态,应用程序都可以方便的从一个时象导航到与它关联的时领:缺点:1.SeleCt语句太多:2.可能会加载应用程序不需要访问的对象白白浪费许多内存空间;2延迟检索:优点:由应用程序决定需要加载哪些对象,可以避免可执行多余的select语句.以及避免加教应用程序不需要访问的对象.因此能提而检索性能,并且能节省内存空间;缺点:应用程序如果希望访问游离状态代理类实例,必须保证他在持久化状态时已经被初始化;3迫切左外连接检索优点:I对应用程序完全透明,不管对象处于持久化状态,还是游离状态,应