Java Struts2面试精华:异常管理、Servlet对比与数据结构详解

3星 · 超过75%的资源 需积分: 12 6 下载量 130 浏览量 更新于2024-07-24 2 收藏 170KB DOC 举报
Java Struts2框架在面试中经常被问到,这里整理了一些关键知识点,以助于理解与准备。 1. 异常分类与处理: - 运行时异常与一般异常的主要区别在于,运行时异常是Java编译器要求程序员明确声明但不强制处理的异常类型,它们通常是由程序逻辑错误引起的,如`NullPointerException`。相反,一般异常(非运行时异常)在编译时不需要特别声明,如`IOException`,需要程序员捕获并处理。 2. Servlet生命周期与CGI对比: - Servlet有明确的生命周期阶段:加载与实例化、初始化、处理请求和销毁。这些阶段通过`Servlet`接口的方法`init()`, `service()`, 和 `destroy()` 实现。Servlet在一个请求周期内保持实例,可同时处理多个请求,提高了效率。 - CGI(Common Gateway Interface)相比之下,每个请求都会创建一个新的进程,导致资源浪费和效率低下,因为进程创建和销毁过程开销大。 3. 集合框架的比较: - `ArrayList`和`Vector`是基于数组实现的,它们的存储性能相似,但`Vector`是同步的(线程安全),适用于多线程环境,可能导致性能下降;`ArrayList`是非同步的,适合单线程场景。 - `LinkedList`采用链表结构,查找慢但插入速度快,适合频繁插入和删除操作。 4. `Collection`与`Collections`: - `Collection`是集合类的顶级接口,包括`Set`(无重复元素)和`List`(有序元素)等子接口。`Collections`是一个工具类,提供了对各种集合的实用操作,如排序、查找和线程安全转换。 5. `HashMap`与`Hashtable`的区别: - 历史上的原因,`Hashtable`是线程安全的,但在Java 1.8之后,`HashMap`也引入了`ConcurrentHashMap`以支持并发访问。`HashMap`在性能上优于`Hashtable`,因为它不需要同步,但不保证线程安全,而`Hashtable`提供了强一致性,但牺牲了部分性能。 掌握这些知识点能帮助你在Java Struts2框架的面试中展示扎实的基础和深入理解,同时也能应对不同类型的面试问题。记得结合具体项目经验来阐述,这将使你的答案更具说服力。