Java EJB 面试题解析:核心技术与组件区别

需积分: 10 3 下载量 57 浏览量 更新于2024-09-20 收藏 67KB DOC 举报
"Java EJB 是企业级 Java 应用中的重要组成部分,主要涉及服务器端的组件模型。本文总结了一些常见的 Java EJB 面试题,涵盖了 EJB 的概念、与 JavaBean 的区别以及 EJB 的不同类型和技术实现。" 在 Java EJB(Enterprise JavaBeans)领域,面试常常会涉及以下几个关键知识点: 1. **EJB2.0 的内容和应用场合**: EJB2.0 规范包含 Bean 提供者、应用程序装配者、EJB 容器、EJB 配置工具、EJB 服务提供者和系统管理员等部分。EJB 容器是 EJB 运行的核心,负责管理 EJB 的生命周期、数据库连接等。EJB2.0 强调了组件化和事务管理,常用于构建分布式的企业级应用。 2. **EJB 与 JavaBean 的区别**: JavaBean 是可复用的组件,没有严格的规范,一般需有无参构造器且实现 Serializable 接口。而 EJB 是一种更高级的组件模型,用于构建分布式、跨进程的组件,它基于 RMI 技术,可以在不同的 JVM 之间进行通信。EJB 必须部署在应用服务器中,由容器管理,而 JavaBean 可以独立运行。 3. **EJB 的实现技术**: EJB 包括 SessionBean、EntityBean 和 MessageDrivenBean,它们基于 JNDI(Java Naming and Directory Interface)、RMI(Remote Method Invocation)、JTA(Java Transaction API)等技术实现。这些技术提供了分布式环境下的查找、调用和事务处理能力。 4. **SessionBean 和 EntityBean 的区别**: - SessionBean 主要用于服务器端的业务逻辑,是非持久性的,它执行短暂的、无状态的任务。可以分为 StatefulSessionBean(有状态会话bean)和 StatelessSessionBean(无状态会话bean)。 - EntityBean 代表应用中的持久性数据,对应数据库中的记录,是持久性的。它提供了对数据库对象的封装,实现了对象-关系映射。 5. **StatefulBean 和 StatelessBean 的区别**: - StatefulSessionBean 保留了客户端的会话状态,可以跟踪用户在会话中的交互,但会消耗更多资源,因为每个客户端都可能需要单独的实例。 - StatelessSessionBean 不保存任何客户端状态,每次方法调用都是独立的,效率高,适合处理无状态的请求。 了解并掌握这些知识点对于理解 EJB 的工作原理和应用场景至关重要,特别是在面试中能够体现出对 Java 企业级开发的深入理解。熟悉 EJB 的开发者通常能够在分布式系统的架构、事务管理和性能优化等方面提供更专业的解决方案。