Java私塾面试题:线程、JSP与EJB深度解析
需积分: 7 56 浏览量
更新于2024-09-27
收藏 158KB PDF 举报
"Java私塾面试题涉及到Java中的线程、JSP以及EJB相关知识,包括EJB规范中的禁止操作、远程接口和主页接口的作用、EJB实例的生命周期、EJB的激活机制以及EJB的类型等核心概念。"
在Java企业级应用开发中,EJB(Enterprise JavaBeans)是一个重要的组件模型,它定义了一套标准来简化分布式多层应用的开发。面试题中提到了EJB规范规定的一些禁止操作,这些操作主要是为了保证EJB的可移植性、安全性和稳定性:
1. **禁止操作线程和线程API**:EJB容器会自动管理线程,因此开发者不应直接使用线程API,如`notify`, `wait`等,以防止并发控制问题。
2. **禁止操作AWT/Swing**:EJB设计为服务器端组件,不支持用户界面操作,因此禁止使用图形用户界面相关的API。
3. **禁止实现服务器功能**:EJB不应包含服务器级别的功能,这些应由EJB容器提供。
4. **禁止对静态属性的存取**:静态属性可能导致共享状态,从而引发并发问题。
5. **禁止直接访问文件系统**:EJB应当通过JNDI或文件服务API来访问文件,以确保数据持久化的安全性。
6. **禁止加载本地库**:这可能导致依赖于特定服务器环境的问题。
7. **禁止使用`this`作为变量和返回值**:`this`可能暴露内部状态,破坏封装性。
8. **禁止循环调用**:循环调用可能导致无限递归,消耗大量资源。
接着,面试题提到了EJB的两个主要接口:Remote接口和Home接口。**Remote接口**定义了业务逻辑方法,客户端通过这个接口与EJB实例交互。**Home接口**则是客户端获取EJB实例的工厂,负责创建和移除EJB实例。
EJB实例的生命周期包括创建、设置上下文、创建EJBObject、业务方法调用和移除等阶段。对于无状态会话Bean和消息驱动Bean,它们通常由缓冲池管理,创建后的实例会被重用。而对于有状态会话Bean和实体Bean,它们可能存在缓存中,通过激活和去激活机制保持状态,并限制内存中的实例数量。
面试题还提到了EJB的激活机制,以有状态会话Bean为例,当客户端调用某个EJB实例时,如果对应的EJBObject找不到实例,则会从去激活的Bean存储中恢复该实例。这个过程通过ejbActive和ejbPassivate方法来标记状态的变迁。
最后,EJB主要有三种类型:
- **会话Bean**:分为有状态(Stateful Session Bean)和无状态(Stateless Session Bean),前者跟踪用户的交互状态,后者不保存状态。
- **实体Bean**:负责持久化数据,分为Bean管理的持续性(BMP)和容器管理的持续性(CMP),前者由开发者管理数据库交互,后者由容器自动处理。
- **消息驱动的Bean**(MessageDriven Bean):用于处理消息队列中的消息,常用于异步处理。
了解这些核心概念对于理解和开发Java企业级应用至关重要,尤其是在面试场景下,能够体现开发者对企业级开发的理解深度。
105 浏览量
2008-09-27 上传
104 浏览量
120 浏览量
2009-08-25 上传
118 浏览量
2009-05-27 上传
2008-09-22 上传
138 浏览量
langwaipo981
- 粉丝: 1
- 资源: 19
最新资源
- 新东方商务英语BEC中级口语精选讲义
- 超声波测距仪C程序,S51使用比较好点!
- 数字签名 数字签名,[美]Mohan Atreya等著 贺军等译,清华大 pdf
- Apress.Pro.Django.Dec.2008
- 网络管理之jmx开发实战
- HP Unix 安全手册
- JAVAEE视频教程下载地址
- 人事管理系统概要设计说明
- GSM,GPRS,相关技术资料23页全
- Flex中的CSS样式.pdf
- AVG单片机中atmega16
- 高质量C++编程指南
- 移动公司各个部门的试题和答案备品备件管理
- EZ430-F2013使用说明
- Wrox.Beginning.Algorithms.Nov.2005.eBook-LinG.pdf
- 教程----LCDS实现Flex与Java通信