Java EE面试题

1、Java EE是什么?
   答:Java EE是Sun公司提出的多层(multi-diered),分布式(distributed),基于组件(component-base)的企业级应用模型 (enterpriese application model)。在这样的一个应用系统中,可按照功能划分为不同的组件,这些组件又可在不同计算机上,并且处于相应的层次(tier)中。所属层次包括客户层(clietn tier)组件、web层和组件、Business层和组件、企业信息系统层。

2、请对以下在Java EE中常用的名词进行解释。
   答:(1)EJB容器:Enterprise java bean 容器,更具有行业领域特色。它提供给运行在其中的组件EJB各种管理功能。只要满足J2EE规范的EJB放入该容器,马上就会被容器进行高效率的管理,并且可以通过现成的接口来获得系统级别的服务。例如邮件服务等。
   (2)JNDI:全称为Java Naming Directory Interface,译为Java命名目录服务。主要提供的功能是:提供一个目录系统,让其它各地的应用程序在其上面留下自己的索引,从而满足快速查找和定位分布式应用程序功能。
   (3)JMS:全称为Java Message Service,译为JAVA消息服务。主要实现各个应用程序之间的通讯,包括点对点和广播。
   (4)JTA:全称为Java Transaction API,译为JAVA事务服务。提供各种分布式事务服务,应用程序只需调用其提供的接口即可。
   (5)JAF:全称为Java Action FrameWork,译为JAVA安全认证框架。提供一些安全控制方面的框架,让开发者通过各种部署和自定义实现自己的个性安全控制策略。
3、EJB具体有几种类型?
   答:EJB具体包括会话Bean、实体Bean和消息驱动Bean三种类型。
会话Bean又可分为有状态和无状态两种。
实体Bean又可分为Bean管理的持续性和容器管理的持续性两种。

4、试说明EJB的角色和三个对象。
   答:一个完整的基于EJB的分布式计算结构由六个角色组成,这六个角色可以由不同的开发商提供,每个角色所作的工作必须遵循Sun公司提供的EJB规范,以保证彼此之间的兼容性。这六个角色分别是EJB组件开发者 、应用组合者、部署者、EJB 服务器提供者、EJB 容器提供者和系统管理员。三个对象是Remote接口、Home接口和Bean类。

5、EJB与Java Bean的区别是什么?
   答:Java Bean 是可复用的组件,对Java Bean并没有严格的规范。理论上讲,任何一个Java类都可以是一个Bean。但通常情况下,由于Java Bean是被容器所创建(如Tomcat)的,所以Java Bean应具有一个无参的构造器,另外,通常Java Bean还要实现Serializable接口用于实现Bean的持久性。Java Bean实际上相当于微软COM模型中的本地进程内COM组件,它是不能被跨进程访问的。Enterprise Java Bean 相当于DCOM,即分布式组件。它是基于Java的远程方法调用RMI技术的,所以EJB可以被远程访问,但EJB必须被布署在诸如Webspere、WebLogic这样的容器中,EJB客户从不直接访问真正的EJB组件,而是通过其容器访问。EJB容器是EJB组件的代理, EJB组件由容器所创建和管理。客户通过容器来访问真正的EJB组件。

6、EJB容器提供的服务主要有哪些?
   答:主要提供声明周期管理、代码产生、持续性管理、安全、事务管理、锁和并发行管理等服务。

7、客服端调用EJB对象的几个基本步骤是什么?
   答:设置JNDI服务工厂以及JNDI服务地址系统属性,查找Home接口,从Home接口调用Create方法创建Remote接口,通过Remote接口调用其业务方法。

8、remote接口和home接口主要作用是什么?
   答:remote接口定义了业务方法,用于EJB客户端调用业务方法。
       home接口是EJB工厂用于创建和移除查找EJB实例。

9、请详细描述一下EJB的激活机制。
   答:以Stateful Session Bean 为例,Cache大小决定了内存中可以同时存在的Bean实例的数量,根据MRU或NRU算法,实例在激活和去激活状态之间迁移,激活机制是当客户端调用某个EJB实例业务方法时,如果对应EJB Object发现自己没有绑定对应的Bean实例则从其去激活Bean存储中(通过序列化机制存储实例)回复此实例。状态变迁前会调用对应的EJB Active和EJB Passivate方法。

10、Java EE是技术还是平台还是框架?
   答:J2EE本身是一个标准,一个为企业分布式应用的开发提供的标准平台。J2EE也是一个框架,包括JDBC、JNDI、RMI、JMS、EJB和JTA等技术。
11、EJB规范规定EJB中禁止的操作有哪些?
   答:EJB规范规定EJB中禁止的操作包括:
  (1)不能操作线程和线程API(线程API指非线程对象的方法如notify,wait等)。
  (2)不能操作awt。
  (3)不能实现服务器功能。
  (4)不能对静态属生存取。
  (5)不能使用IO操作直接存取文件系统。
  (6)不能加载本地库。
  (7)不能将this作为变量和返回。
  (8)不能循环调用。

12、EJB需直接实现它的业务接口或Home接口吗?请简述理由。
   答:远程接口和Home接口不需要直接实现,他们的实现代码是由服务器产生的,程序运行中对应实现类会作为对应接口类型的实例被使用。

你可能感兴趣的:(java ee)