J2EE面试重点:继承、接口、容器与事务

版权申诉
5星 · 超过95%的资源 1 下载量 84 浏览量 更新于2024-08-05 收藏 37KB DOC 举报
"这是一份关于J2EE面试的综合文档,包含了基础问答,涉及类的继承、抽象类与接口的区别、Hashtable与HashMap的原理及区别、forward与redirect的差异、Web容器的概念,以及J2EE相关名词的解释,如JNDI、JMS、JTA和JAF等。" 在J2EE开发中,了解这些知识点对于面试至关重要。 1. 类的继承:在Java中,不是所有类都可以被继承。例如,`java.lang.Number`、`java.lang.Double`、`java.lang.Math`、`java.lang.Void` 和 `java.lang.Class` 是不可继承的(表示为F),因为它们是final类。而`java.lang.Thread`和`java.lang.ClassLoader`是可以被继承的(表示为T)。 2. 抽象类与接口的区别: - **接口** 可以被多个类实现(多重implements),而 **抽象类** 只能被一个类继承(单一extends)。 - 接口仅包含方法声明,没有方法体(实现)。**抽象类** 可以包含抽象方法(没有方法体的方法)以及非抽象方法(有方法体的方法)。 - 接口中的字段默认为`public static final`,而抽象类中的字段默认是包访问权限(friendly)。 3. `Hashtable`和`HashMap`的区别: - `HashTable`是线程安全的,因为它在内部使用了synchronized关键字,适合多线程环境。而`HashMap`是非线程安全的,适用于单线程或已经处理好并发控制的环境。 - `HashTable`不允许键或值为null,而`HashMap`允许键和值为null。 - 散列函数的实现不同,导致它们的性能特点和使用场景有所不同。 4. `forward`与`redirect`: - **forward** 是服务器内部的转发,它不会向客户端浏览器发送新的HTTP请求,而是将请求转发到另一个资源,共享同一个请求对象和响应对象,保留了原始请求的所有属性。 - **redirect** 是服务器向客户端发送一个HTTP响应,告诉浏览器重新发起一个新的请求,导致两次HTTP请求,且第二次请求不会携带第一次请求的所有属性(如session信息和请求参数)。 5. Web容器:Web容器是执行Web应用程序的地方,它遵循J2EE规范,负责处理HTTP请求,管理Servlet的生命周期,提供并发控制、安全性等服务。 6. J2EE相关名词: - **JNDI (Java Naming and Directory Interface)** 提供了一个目录服务,用于查找和定位分布式应用程序的组件,简化了服务发现和数据查找。 - **JMS (Java Message Service)** 为应用程序间的异步通信提供标准接口,支持点对点和发布/订阅模式。 - **JTA (Java Transaction API)** 提供了分布式事务处理能力,使得应用程序可以在不同的系统之间协调事务,确保数据的一致性。 - **JAF (Java Authentication Framework)** 是Java的安全框架,用于实现用户认证和其他安全策略,让开发者能够轻松集成安全控制。 理解并掌握这些基本概念和机制对于成为一名合格的J2EE开发者至关重要,它们是构建和维护复杂企业级应用的基础。在面试中,能够深入讨论这些知识点将展示出你扎实的理论基础和实践经验。
2023-05-18 上传