J2EE面试重点:Hashtable、HashMap与Hashtable对比、Web容器解析
需积分: 9 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应用开发的人来说。
2018-11-29 上传
2013-03-16 上传
2019-03-19 上传
143 浏览量
2013-04-17 上传
105 浏览量
lifesreason
- 粉丝: 0
- 资源: 24
最新资源
- 基于Python和Opencv的车牌识别系统实现
- 我的代码小部件库:统计、MySQL操作与树结构功能
- React初学者入门指南:快速构建并部署你的第一个应用
- Oddish:夜潜CSGO皮肤,智能爬虫技术解析
- 利用REST HaProxy实现haproxy.cfg配置的HTTP接口化
- LeetCode用例构造实践:CMake和GoogleTest的应用
- 快速搭建vulhub靶场:简化docker-compose与vulhub-master下载
- 天秤座术语表:glossariolibras项目安装与使用指南
- 从Vercel到Firebase的全栈Amazon克隆项目指南
- ANU PK大楼Studio 1的3D声效和Ambisonic技术体验
- C#实现的鼠标事件功能演示
- 掌握DP-10:LeetCode超级掉蛋与爆破气球
- C与SDL开发的游戏如何编译至WebAssembly平台
- CastorDOC开源应用程序:文档管理功能与Alfresco集成
- LeetCode用例构造与计算机科学基础:数据结构与设计模式
- 通过travis-nightly-builder实现自动化API与Rake任务构建