J2EE面试重点:Hashtable、HashMap与Hashtable对比、Web容器解析

需积分: 9 1 下载量 194 浏览量 更新于2024-07-27 收藏 134KB DOC 举报
在Java开发领域,尤其是针对J2EE平台的面试中,了解核心概念和技术是至关重要的。以下是一些关键知识点的详细说明: 1. **Hashtable原理与HashMap与Hashtable的区别** - `Hashtable` 是Java中的一个同步(synchronized)的键值对存储结构,它基于散列表(Hash Table)实现。它通过散列函数H(k)来确定对象的存储位置,保证快速查找。`Hashtable` 不允许null作为键或值。 - `HashMap` 也是基于散列表实现,但它是非同步的,并且允许null键和null值。它的性能通常优于`Hashtable`,因为没有同步开销,但在多线程环境下需要手动同步。 - 主要区别在于:同步性、是否允许null以及`Hashtable`不支持泛型,而`HashMap`支持。 2. **抽象类与接口的区别** - 抽象类是一个不能实例化的类,它可以包含抽象方法(无实现的方法)和具体方法。一个类可以继承一个抽象类,但Java只支持单继承。 - 接口是一种完全抽象的类型,只能包含常量和抽象方法。一个类可以实现多个接口,实现多继承的效果。 - 接口字段默认为`public static final`,而抽象类字段默认为包级私有(friendly)。 3. **forward与redirect** - `forward()` 是内部转发,发生在服务器端,请求不会到达浏览器,因此第一次请求的所有属性和参数都能在第二次请求中访问。 - `redirect()` 是重定向,实际上是两次HTTP请求,浏览器会发送新的请求,导致所有属性和参数丢失。 4. **Web容器** Web容器(例如Tomcat、Jetty)是运行Java Web应用的环境,它遵循J2EE规范,负责管理Web组件的生命周期,提供并发性、安全性等服务,支持Servlet和JSP等技术。 5. **J2EE相关名词解释** - **JNDI**:Java Naming and Directory Interface,用于分布式环境中的对象查找和绑定,比如数据库连接池的配置信息。 - **JMS**:Java Message Service,用于异步通信,支持点对点和发布/订阅两种模式。 - **JTA**:Java Transaction API,提供了分布式事务处理能力,确保跨多个资源的事务一致性。 - **JAF**:Java Authentication and Authorization Framework,Java的安全框架,用于实现身份验证和授权策略。 - **RMI**:Remote Method Invocation,允许在不同的Java虚拟机之间调用方法,实现分布式计算。 6. **EJB(Enterprise JavaBeans)** EJB是J2EE中的核心组件,用于构建可部署的分布式企业级应用。 - **SessionBean** 代表业务逻辑,分为Stateful(有状态)和Stateless(无状态)。Stateful Session Bean能记住与客户端的交互状态,而Stateless不保留状态,每次调用独立。 - **EntityBean** 通常映射到数据库中的持久化实体,分为Bean-managed Persistence (BMP) 和 Container-managed Persistence (CMP)。 - EJB还包括Message-driven Bean,用于处理JMS消息。 这些知识点涵盖了J2EE面试中常见的主题,理解并掌握它们对于Java开发者来说至关重要,特别是对准备从事J2EE应用开发的人来说。