Java是一种广泛使用的面向对象编程语言,其面试题集涵盖了各种核心概念和技术。以下是一些重要的知识点,基于给定的题目:
1. **面向对象的特征**:面向对象编程的四个基本特征是抽象、继承、封装和多态性。抽象允许我们关注问题的关键部分,忽略不相关细节。继承使类之间能够共享属性和方法,减少了代码重复。封装是隐藏对象的内部实现细节,只暴露有限的公共接口。多态性允许不同类型的对象对相同的消息做出反应,提高了代码的灵活性和可复用性。
2. **数据类型**:在Java中,`String`不是一种基本数据类型,而是类。基本数据类型如`int`是原始类型,而`Integer`是`int`的封装类,提供了更多的方法和功能,例如空值处理。使用`StringBuffer`而非`String`进行字符串操作时,尤其是在大量拼接操作中,可以提高性能,因为`StringBuffer`在内存中可变,而`String`一旦创建就不能修改。
3. **异常处理**:在Java中,异常分为运行时异常( RuntimeExceptions)和一般异常(Checked Exceptions)。运行时异常是程序运行期间可能会遇到的错误,如除以零,不需要显式捕获。而一般异常是编译器强制要求处理的,必须用`try-catch`语句块捕获或在方法签名中声明抛出。运行时异常如果不处理,程序会立即终止;而一般异常若未处理,编译无法通过。
4. **Servlet生命周期**:Servlet的生命周期包括初始化(init)、服务(service)、销毁(destroy)三个阶段。在服务器启动或第一次请求时,Servlet会被实例化并调用`init`方法。每次请求到达时,Servlet容器调用`service`方法,该方法根据请求类型选择适当的方法(如`doGet`或`doPost`)。当服务器关闭或需要释放资源时,调用`destroy`方法。与CGI(Common Gateway Interface)相比,Servlet更高效,因为一个Servlet实例可以服务于多个请求,而CGI为每个请求创建新的进程,消耗资源较大。
5. **集合框架**:ArrayList和Vector都是基于数组实现的列表,允许按索引访问元素,但插入和删除操作效率较低。ArrayList是非线程安全的,适合单线程环境,性能相对较高。Vector是线程安全的,但在多线程环境下,其同步机制降低了性能。LinkedList使用双向链表,虽然按索引访问较慢,但插入和删除操作更快,适合需要频繁插入和删除的场景。
6. **Enterprise JavaBeans (EJB)**:EJB是Java企业级应用的组件模型,用于构建分布式、事务处理和多层应用。它基于Java的J2EE(Java Platform, Enterprise Edition)平台,主要由Session Beans(会话bean)和Entity Beans(实体bean)组成,分别处理业务逻辑和持久化数据。此外,还有Message-driven Beans(消息驱动bean)用于处理JMS(Java Message Service)消息。
以上是Java面试中的一些关键知识点,涵盖面向对象编程、数据类型、异常处理、Servlet、集合框架以及企业级开发中的EJB组件。掌握这些知识有助于理解Java的核心原理及其在实际项目中的应用。