Java面试必备:EJB、RMI深度解析

需积分: 3 26 下载量 105 浏览量 更新于2024-08-01 收藏 516KB DOC 举报
"J2EE面试宝典葵花宝典" 在Java企业级开发中,J2EE(Java 2 Platform, Enterprise Edition)扮演着至关重要的角色。本篇内容主要涉及了J2EE中的核心组件——Enterprise JavaBeans (EJB),以及与其相关的远程方法调用(RMI)技术。以下是对这些知识点的详细解释: 1. **EJB(Enterprise JavaBean)**:EJB是Java平台上的分布式组件模型,允许开发者创建可以在Java应用服务器中部署和管理的业务逻辑组件。EJB基于RMI技术,可以实现跨进程、跨计算机的远程访问。EJB组件通常包含三种类型:Entity Beans(实体Bean)、Session Beans(会话Bean)和Message-Driven Beans(消息驱动Bean)。它们分别用于数据持久化、临时任务处理和异步消息处理。 - **Entity Beans**:负责表示数据库中的持久化对象,可以映射到数据库表。根据管理方式,分为CMP(容器管理持久化)和BMP(Bean管理持久化)。CMP让容器负责数据库操作,而BMP则需要开发者自己编写数据库交互代码。 - **Session Beans**:代表用户会话或者业务流程,它们协调Bean之间的交互,不涉及持久化状态。通常用于执行临时性任务,如业务逻辑处理。 - **Message-Driven Beans**:主要用于接收和处理Java消息服务(JMS)消息,常用于实现异步通信和解耦。 2. **RMI(Remote Method Invocation)**:RMI是Java提供的用于在不同JVM之间进行远程调用的技术,类似于远程过程调用(RPC)。RMI使得开发者能够创建分布式的、面向对象的应用程序,它在Java中提供了一种透明的调用远程对象的方法。与传统的RPC相比,RMI更适合于分布式对象系统,因为它允许对象间的交互,而不仅仅是函数调用。 3. **EJB的种类和作用**: - **Entity Beans**:用于表示数据库中的实体,通常与数据库表对应。CMP和BMP是两种实现方式,CMP简化了数据管理,BMP提供了更多的控制但需要编写更多的代码。 - **Session Beans**:用于处理特定的业务逻辑或用户会话,它们在客户端请求时创建,并在会话结束时销毁。Session Beans不负责持久化数据,可以是无状态的(Stateless)或有状态的(Stateful)。 - **Message-Driven Beans**:专门设计用来处理JMS消息,通常是异步的,提高了系统的并发处理能力。 4. **Finder和Select方法**:在EJB中,Finder方法和Select方法都是用于从数据库中检索数据,但有区别: - **Finder方法**:返回单个对象或对象集合,这些对象是EJB类型的实例,用于查询特定的业务规则或条件。Finder方法通常是非标准的,由开发者定义,可以根据特定的业务逻辑找到所需的数据。 - **Select方法**:返回单个或多个对象(可能是集合或集),这些对象可以是任何类型,不仅限于EJB对象。Select方法通常基于SQL查询,使用JPA(Java Persistence API)或HQL(Hibernate Query Language)来执行,返回的结果更加灵活。 了解这些知识点对于准备J2EE面试至关重要,因为它们涉及到Java企业级开发的核心概念和技术。熟练掌握EJB和RMI的使用,可以提升开发者构建可扩展、高性能的企业级应用的能力。