### Java经典面试100题知识点详解 #### 面向对象的四个核心特征 **1. 抽象** - **定义**:抽象是面向对象编程中的一个重要概念,指的是简化复杂现实世界的特性,只保留与当前目标最相关的部分,忽略不相关的信息。 - **作用**:提高代码复用性,降低系统复杂度。 - **形式**:抽象在Java中通常通过接口(interface)和抽象类(abstract class)来体现。 - **接口**:定义行为标准但不实现。 - **抽象类**:定义一部分通用行为,并可以实现部分功能。 **2. 继承** - **定义**:继承是一种用于创建类的新方式,它允许一个类继承另一个类的属性和方法。 - **作用**:实现代码复用,减少重复代码。 - **形式**:在Java中,继承通过`extends`关键字实现。一个类可以继承另一个类的所有非私有成员。 **3. 封装** - **定义**:封装是将对象的状态信息隐藏在对象内部,不允许外部程序直接访问对象的内部信息,而是通过该类所提供的公共接口来访问。 - **作用**:提高安全性,增强灵活性。 - **形式**:通过访问控制符(如`private`, `protected`, `public`)来实现。通常情况下,类的属性设置为`private`,并通过公共的方法(`get`/`set`)来访问这些属性。 **4. 多态性** - **定义**:多态性指允许不同类的对象对同一消息做出响应的能力。 - **作用**:增强代码的灵活性和扩展性。 - **形式**:主要分为两种形式: - **参数化多态**:通过方法重载和泛型实现。 - **包含多态**:通过方法重写实现。 #### String是否是最基本的数据类型 - **结论**:不是。 - **解释**:Java中的基本数据类型包括`byte`、`int`、`char`、`long`、`float`、`double`、`boolean`和`short`。`String`实际上是对象类型,属于引用类型。`String`类是不可变的(final类型),因此无法继承或修改。对于频繁修改字符串的情况,推荐使用`StringBuilder`或`StringBuffer`类。 #### int与Integer的区别 - **int**:原始数据类型,直接存储数值。 - **Integer**:`int`的封装类,提供了更多的操作方法,可以用于集合操作和序列化场景。 - **应用场景**: - 当需要固定不变的数值且追求效率时,使用`int`。 - 当需要处理可变的数据、集合或需要转换为字符串时,使用`Integer`。 #### String与StringBuffer的区别 - **String**:不可变字符串,一旦创建就不能更改。 - **StringBuffer**:可变字符串,可以在原有基础上添加或删除内容。 - **性能对比**: - 在需要频繁修改字符串内容的情况下,`StringBuffer`比`String`更高效。 - 对于简单的字符串拼接,`String`在创建时已经优化过,性能差异不大。 #### 运行时异常与一般异常的区别 - **运行时异常**:通常是逻辑错误,比如`NullPointerException`,这类异常不需要显式捕获或声明。 - **一般异常**:通常是外部错误,如`IOException`,需要在方法签名中声明或显式捕获处理。 #### Servlet的生命周期与Servlet和CGI的区别 - **Servlet的生命周期**: 1. 初始化:服务器启动时或首次访问时调用`init`方法。 2. 处理请求:每次请求调用`service`方法。 3. 销毁:服务器关闭时调用`destroy`方法释放资源。 - **Servlet与CGI的区别**: - **Servlet**:运行在服务器进程中,多线程执行,实例长期存在,适合处理大量并发请求。 - **CGI**:为每个请求创建一个新的进程,请求完成后销毁,适合简单任务。 #### ArrayList, Vector, LinkedList的存储性能和特性 - **ArrayList**:基于数组实现,随机访问速度快,插入和删除较慢。 - **Vector**:类似于`ArrayList`,但是线程安全,性能稍逊。 - **LinkedList**:基于双向链表实现,随机访问慢,插入和删除快。 #### EJB基于的技术与Bean的区别 - **EJB技术基础**:基于Java平台的企业级应用开发框架,支持事务处理、安全管理和远程访问等功能。 - **SessionBean与EntityBean的区别**: - **SessionBean**:分为无状态和有状态两种,用于管理业务逻辑。 - **EntityBean**:用于持久化数据,对应数据库表。 - **StatefulBean与StatelessBean的区别**: - **StatefulBean**:维护客户端会话状态,适用于需要保存会话数据的应用场景。 - **StatelessBean**:不保存客户端会话状态,适用于无需维护会话的应用场景。 以上是对给定文件中部分内容的知识点进行了详细的解析和扩展,希望能帮助到准备Java面试的朋友。
- 粉丝: 0
- 资源: 6
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助