电子书下载地址: http://wiki.jikexueyuan.com/project/java-interview-bible/
1. J2EE 是什么?它包括哪些技术?
答:从整体上讲,J2EE 是使用 Java 技术开发企业级应用的工业标准,它是 Java 技术不断适应和促进企业级应用过程中的产物。适用于企业级应用的 J2EE,提供一个平台独立的、可移植的、多用户的、安全的和基于标准的企业级平台,从而简化企业应用的开发、管理和部署。J2EE 是一个标准,而不是一个现成的产品。
主要包括以下这些技术:
- Servlet
Servlet是Java平台上的CGI技术。Servlet在服务器端运行,动态地生成Web页面。与传统的CGI和许多其它类似CGI的技术相比,Java Servlet具有更高的效率并更容易使用。对于Servlet,重复的请求不会导致同一程序的多次转载,它是依靠线程的方式来支持并发访问的。
- JSP
JSP(Java Server Page)是一种实现普通静态 HTML 和动态页面输出混合编码的技术。从这一点来看,非常类似 Microsoft ASP、PHP等技术。借助形式上的内容和外观表现的分离,Web 页面制作的任务可以比较方便地划分给页面设计人员和程序员,并方便地通过 JSP 来合成。在运行时态,JSP 将会被首先转换成 Servlet,并以 Servlet 的形态编译运行,因此它的效率和功能与 Servlet 相比没有差别,一样具有很高的效率。
- EJB
EJB 定义了一组可重用的组件:Enterprise Beans。开发人员可以利用这些组件,像搭积木一样建立分布式应用。
- JDBC
JDBC(Java Database Connectivity,Java 数据库连接) API 是一个标准 SQL(Structured Query Language,结构化查询语言)数据库访问接口,它使数据库开发人员能够用标准 Java API 编写数据库应用程序。JDBC API 主要用来连接数据库和直接调用 SQL 命令执行各种 SQL 语句。利用 JDBC API 可以执行一般的 SQL 语句、动态 SQL 语句及带 IN 和 OUT 参数的存储过程。Java 中的 JDBC 相当于 Microsoft 平台中的 ODBC (Open Database Connectivity)。
2. 描述 J2EE 框架的多层结构,并简要说明各层的作用。
答:
- Presentation layer(表示层)
a. 表示逻辑(生成界面代码)
b. 接收请求
c. 处理业务层抛出的异常
d. 负责规则验证(数据格式,数据非空等)
e. 流程控制
- Service layer(服务层/业务层)
a.封装业务逻辑处理,并且对外暴露接口
b.负责事务,安全等服务
- Persistence layer(持久层)
a 封装数据访问的逻辑,暴露接口
b.提供方便的数据访问的方案(查询语言,API,映射机制等)
4)Domain layer(域层)
a. 业务对象以及业务关系的表示
b. 处理简单的业务逻辑
c. 域层的对象可以穿越表示层,业务层,持久层
软件分层结构使得代码维护非常方便,设计明确,各层独立,专注自己擅长的领域。
3. EJB 包含哪 3 种 bean
答:session bean(会话 bean), entity bean(实体 bean), message bean(消息 bean)
4. Tomcat 服务器的默认端口是多少?怎样修改 tomcat 的端口?
答:默认端口为 8080,可以通过 service.xml 的 Connector 元素的 port 属性来修改端口
5. EJB的优点有哪些?(选择 2 项)
A、技术领先 B、价格低廉 C、性能优越 D、强大的容器支持
解答:CD
6. 无状态会话 Bean、有状态会话 Bean、CMP 与 BMP 中,哪一种 Bean 不需要自己书写连接数据库的代码?
A、无状态会话Bean
B、有状态会话Bean
C、CMP
D、BMP
答:C
BMP 是在 Bean 中完成对数据库 JDBC 的各种调用
CMP 是由 EJB 容器自动完成对数据库的操作
会话 Bean 主要处理业务逻辑
7. 假设 web 应用的文档根目录为 MyApp,那么可以从哪里找到 database.jar 文件。
A. MyApp目录下
B. MyApp\images目录下
C. MyApp\WEB-INF目录下
D. MyApp\WEB-INF\lib目录下
答:D
Web 工程的 lib 是放置 .jar 文件的地方。
8.要创建一个 EJB,必须要至少编写哪些 Java 类和接口?
A. 定义远程(或业务)接口
B. 定义本地接口
C. 定义Bean接口
D. 编写Bean的实现
解答:ABC
9. EJB 类库存在于 Java 的哪个版本中?(选择1项)。
A. J2SE
B. J2EE
C. J2ME
D. J2NE
解答:B
Java 分为三个体系
JavaSE(Java2 Platform Standard Edition,java平台标准版),
JavaEE(Java 2 Platform,Enterprise Edition,java平台企业版),
JavaME(Java 2 Platform Micro Edition,java平台微型版)。
EJB 属于 JavaEE 版本
10. 在 J2EE 中属于 Web 层的组件有(选择1项)
A. HTML
B. EJB
C. Applet
D. JSP
解答:D
11. EJB 的角色和三个对象
一个完整的基于 EJB 的分布式计算结构由六个角色组成,这六个角色可以由不同的开发商提供,每个角色所作的工作必须遵循 Sun 公司提供的 EJB 规范,以保证彼此之间的兼容性。这六个角色分别是 EJB 组件开发者(Enterprise Bean Provider) 、应用组合者(Application Assembler)、部署者(Deployer)、EJB 服务器提供者(EJB Server Provider)、EJB 容器提供者(EJB Container Provider)、系统管理员(System Administrator)
三个对象是Remote(Local)接口、Home(LocalHome)接口,Bean 类
12. EJB 的激活机制
以 Stateful Session Bean 为例:其 Cache 大小决定了内存中可以同时存在的Bean实例的数量,根据MRU或NRU算法,实例在激活和去激活状态之间迁移,激活机制是当客户端调用某个 EJB 实例业务方法时,如果对应 EJB Object 发现自己没有绑定对应的 Bean 实例则从其去激活 Bean 存储中(通过序列化机制存储实例)回复(激活)此实例。状态变迁前会调用对应的 ejbActive 和 ejbPassivate 方法。
13. EJB 的几种类型
会话(Session)Bean ,实体(Entity)Bean 消息驱动的(Message Driven)Bean
会话 Bean 又可分为有状态(Stateful)和无状态(Stateless)两种
实体 Bean 可分为 Bean 管理的持续性(BMP)和容器管理的持续性(CMP)两种