### 常见JAVA面试题解析 #### 1. 抽象 抽象是面向对象编程中的核心概念之一,它指的是在设计系统时,专注于事物的关键属性和行为,而忽略不必要的细节。这一过程允许开发者创建更加模块化和可管理的代码。在JAVA中,抽象可以通过接口(interface)和抽象类(abstract class)来实现。接口定义了一组行为规范,但不提供具体的实现,而抽象类可以包含部分实现,以及未实现的抽象方法。 #### 2. 继承 继承是面向对象编程中的另一个关键特性,它允许创建一个新的类(子类)从已存在的类(父类)继承属性和方法。这样做的好处是提高了代码的复用性,减少了重复代码的编写,同时使得代码结构更加清晰和易于维护。在JAVA中,通过关键字`extends`实现继承,子类可以覆盖或扩展父类的方法,以适应更具体的需求。 #### 3. 封装 封装是将数据和操作数据的方法捆绑在一起,对外部隐藏内部实现细节,只提供公共的接口供外部调用。这是面向对象编程的一个基本原则,有助于增强代码的安全性和降低模块间的耦合度。在JAVA中,封装主要通过访问控制修饰符(如public, protected, private)和封装类来实现。 #### 4. 多态性 多态性是指同一个行为具有多种不同表现形式的能力,是面向对象编程的一个重要特性。在JAVA中,多态性主要通过方法重载(overloading)和方法重写(overriding)来体现。方法重载是在一个类中定义多个同名但参数列表不同的方法;方法重写则是子类提供与父类相同签名的方法,但有自己独特的实现。 #### 5. String是否为基本数据类型? 在JAVA中,String不是基本数据类型,而是引用类型,它是不可变的对象。这意味着一旦一个String对象被创建,它的内容就不能被更改。为了提高效率,当需要频繁修改字符串时,可以使用`StringBuilder`或`StringBuffer`类,它们提供了对字符串的高效修改能力。 #### 6. int与Integer的区别 `int`是JAVA的基本数据类型,而`Integer`是`int`的封装类。基本数据类型在内存中直接存储值,而封装类则存储指向对象的引用。`Integer`类提供了许多静态方法来处理整数,例如解析和格式化。 #### 7. String与StringBuffer的区别 `String`是不可变的,一旦创建就不能修改,而`StringBuffer`是一个可变的字符串类,支持对字符串内容的修改。在多线程环境下,`StringBuffer`是线程安全的,而`StringBuilder`虽然功能类似,但在非线程安全的情况下性能更好。 #### 8. 运行时异常与一般异常的异同 运行时异常(如`NullPointerException`,`ArrayIndexOutOfBoundsException`)通常是由于编程错误导致的,如使用未初始化的变量或数组越界访问。这类异常不需要显式处理,但如果在代码中出现,应该修复以避免程序崩溃。一般异常(如`IOException`,`SQLException`)通常由系统资源的可用性或外部因素引起,需要在代码中通过try-catch块显式处理。 #### 9. Servlet与CGI的区别 Servlet是一种用于生成动态Web内容的技术,运行在服务器端,通过多线程处理并发请求,效率高,可以共享状态。而CGI(Common Gateway Interface)每次请求都会创建新的进程,处理完请求后进程会终止,因此在处理大量并发请求时效率较低。 #### 10. ArrayList, Vector, LinkedList的存储性能和特性 - `ArrayList`和`Vector`基于数组实现,支持随机访问,但插入和删除操作成本较高。 - `Vector`相比`ArrayList`增加了线程安全性,但性能稍差。 - `LinkedList`基于链表实现,插入和删除操作速度快,但随机访问效率低。 #### 11. EJB技术及SessionBean与EntityBean的区别 Enterprise JavaBeans(EJB)是用于开发分布式企业级应用程序的组件模型,包括SessionBean、EntityBean、MessageDriven Bean等。`SessionBean`用于管理应用程序逻辑,分为有状态(Stateful)和无状态(Stateless)两种,前者可以保存客户端会话状态,后者则不保存。`EntityBean`用于持久化数据,代表数据库中的实体,可以是表或者视图。
- dumaasilan2012-12-20题目比较常见,不过也有一定的帮助。
- 风_行天下2014-08-19着实不错,有帮助
- 粉丝: 0
- 资源: 4
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助