根据提供的文件信息,我们可以整理出以下关键知识点:
### 1. Java基础知识
#### 1.1 基础概念理解
- **选择题**: 文件提到的“选择题”部分涉及到了Java的一些基本概念的选择题练习,例如对于某个特定场景或问题的理解与选择。
#### 1.2 平台特性
- **平台**: Java被描述为一个平台,提供了一个可移植、健壮且安全的编程环境。
- **资源**: 提到了资源的概念,这可能指的是Java程序中的各种资源,如内存资源、文件资源等。
#### 1.3 类加载
- **类加载**: Java程序运行时需要将定义好的类加载到内存中。这一过程包括了验证、准备和解析三个阶段。
- **初始化**: 类的初始化阶段会执行类构造器 `<clinit>` 方法,用于初始化类变量。
#### 1.4 状态管理
- **状态**: Java中对象的状态可以通过其成员变量来表示,这些状态可以在对象生命周期中发生变化。
- **状态管理**: 对象状态的变化可以由方法调用来实现,例如设置或获取属性值。
### 2. 数据类型
- **基础数据类型**: Java中有八种基础数据类型,分为整型、浮点型、字符型和布尔型。具体包括 `byte`、`short`、`int`、`long`、`float`、`double`、`char` 和 `boolean`。
- **包装类**: 每种基础数据类型都有对应的包装类,如 `Integer` 包装 `int`,`Double` 包装 `double` 等。
- **区别**: 包装类与基础数据类型的差异在于:包装类是对象类型,可以使用类的方法;而基础数据类型则不支持此类操作。此外,基础数据类型默认有初始值(如 `int` 的默认值为 `0`),而包装类的默认值为 `null`。
### 3. 字符串处理
- **String 类**: `String` 类是不可变的,意味着一旦创建就不能更改。为了提高效率和节省内存空间,通常推荐使用 `StringBuilder` 或 `StringBuffer` 来替代。
- **StringBuffer 类**: 当需要对字符串进行频繁修改时,`StringBuffer` 提供了更好的性能,尤其是在多线程环境下,因为它提供了同步方法以确保线程安全性。
### 4. 异常处理
- **异常分类**: Java中的异常分为两大类:运行时异常(如 `NullPointerException`)和非运行时异常(如 `IOException`)。运行时异常通常是因为编程错误导致的,而非运行时异常则是由于外部条件变化造成的。
- **处理方式**: 运行时异常不需要显示捕获,而非运行时异常则需要通过 `try-catch` 块来处理或者在方法签名中声明抛出。
### 5. Servlet 与 CGI
- **Servlet 特性**: Servlet 是一种服务器端技术,用于生成动态 Web 内容。它可以通过 `init()`、`service()` 和 `destroy()` 方法来控制其生命周期。
- **与 CGI 的区别**: 相比于传统的 CGI 脚本,Servlet 在每次请求处理时不会创建新的进程,而是复用现有的线程,因此在处理并发请求方面更加高效。
### 6. 集合框架
- **ArrayList**: 提供了一个基于数组实现的列表集合,适用于频繁的随机访问。
- **Vector**: 类似于 `ArrayList`,但提供了同步方法以确保线程安全。
- **LinkedList**: 基于链表实现,适合插入和删除操作较多的场景。
### 7. EJB (Enterprise JavaBeans)
- **Session Beans**: 分为 `Stateful Session Beans` 和 `Stateless Session Beans`,分别用于维护会话状态和不需要保存会话状态的业务逻辑。
- **Entity Beans**: 用于表示持久化数据,通常对应数据库中的表格。
- **Message-Driven Beans**: 用于处理异步消息传递。
### 8. HashMap 与 Hashtable
- **HashMap**: 允许使用 `null` 键和值,线程不同步,性能更好。
- **Hashtable**: 不允许使用 `null` 键或值,线程同步,性能稍差。
### 9. final, finally, finalize
- **final**: 用于声明不可变的变量或方法。
- **finally**: 在 `try-catch-finally` 结构中,无论是否发生异常都会执行。
- **finalize**: 是一个特殊的方法,用于对象被垃圾回收之前执行清理工作。
以上知识点覆盖了Java的基础知识、数据类型、字符串处理、异常处理、Web 开发中的Servlet技术、集合框架、企业级开发中的EJB以及常用的数据结构等内容,旨在帮助准备面试的开发者系统地复习和掌握Java的核心概念和技术要点。