"这份文档提供了强化版的Java面试题,涵盖了从基础到进阶的Java知识,特别适合正在准备Java面试或者希望深入理解Java的开发者。文档中包括了EJB、RMI等核心概念的解释,以及EJB的不同类型和它们的作用,还对比了实体Bean中的CMP和BMP的区别,并讨论了Finder和Select方法的不同。"
在Java面试中,EJB(Enterprise JavaBean)是一个重要的概念,它是Java EE平台的一部分,用于构建企业级的应用。EJB是一种分布式组件,可以实现远程方法调用(RMI),使得组件可以在不同的进程中甚至不同的计算机上被访问。EJB必须在应用服务器(如WebSphere、WebLogic)这样的容器中运行,客户通过容器来间接访问EJB组件,容器负责管理和维护EJB的生命周期。
RMI(Remote Method Invocation)是Java中实现的一种远程调用机制,自JDK 1.1起就被引入。RMI加强了Java开发分布式应用的能力,允许不同地址空间的对象进行通信,类似于RPC(远程过程调用),但更适合于分布式对象系统。RMI使得开发者可以像调用本地方法一样调用远程对象的方法,极大地简化了分布式应用的开发。
EJB有三种主要类型:
1. EntityBean:代表业务数据,通常是数据库中的记录,负责持久化。EntityBean分为CMP(Container Managed Persistence)和BMP(Bean Managed Persistence)两种。CMP由容器管理持久性,开发者无需编写数据库操作代码;而在BMP中,开发者需要自行编写数据库访问逻辑。
2. SessionBean:用于表示一次会话或工作流,协调不同Bean之间的交互。SessionBean不负责持久化,通常用于处理用户会话状态和业务逻辑。
3. Message-Driven Bean(MDB):主要用于处理JMS(Java Message Service)消息,是异步处理消息的组件,常用于解耦系统中的不同部分。
Finder和Select方法是EJB中用于检索数据的方法。Finder方法返回单个对象或对象集合,返回类型是EJBObject或EJBLocalObject,而Select方法则可以返回单个或多个对象,这些对象可以是任何类型,不只是EJB对象。Finder方法通常用于根据特定条件查找对象,而Select方法则更灵活,可以用于执行SQL查询,返回的结果可以是任意类型的数据。
这份文档提供的面试题和解释可以帮助Java开发者巩固基础知识,理解EJB和RMI的核心概念,以及在实际开发中如何选择和使用不同的EJB类型,同时对实体Bean的持久化策略有更深入的认识。对于准备Java面试的开发者来说,这些内容是必不可少的知识点。