Java面试必备:JVM内存回收、接口与抽象类解析

需积分: 13 1 下载量 140 浏览量 更新于2024-09-12 收藏 275KB DOCX 举报
"Java面试题,涵盖JVM内存回收、接口与抽象类的意义、内部类、对象生命周期、Java虚拟机特性、集合与继承关系、静态方法、基本数据类型、JDBC数据库访问步骤等核心概念。" Java语言是面向对象编程的重要工具,广泛应用于软件开发。以下是对给定文件中部分知识点的详细解释: 1. **JVM内存回收**:Java的内存管理主要依赖于垃圾收集器(Garbage Collector)。当一个对象不再被任何引用指向时,JVM会自动回收该对象占用的内存。同时,JVM进行内存碎片整理,将存活对象移动到内存的一端,释放不使用的空间。 2. **Java接口的意义**:接口提供了一种多态性实现,允许类实现多个接口,实现不同功能的组合。在代码设计中,接口用于定义行为规范,使得更换实现类时,调用者无需修改原有代码。 3. **抽象类的意义**:抽象类作为基类,不能被实例化,但可以被继承。它定义了子类必须实现的抽象方法,提供了一种共享接口和实现的机制,增强了代码的复用性和扩展性。 4. **内部类的作用**:内部类可以实现数据隐藏,增加封装性;它可以同时继承一个外部类和一个接口,实现多重继承的效果;并且,内部类可以访问外部类的所有成员,包括私有成员。 5. **Java中的==与equals与hashCode的区别**:`==`比较的是两个变量是否指向同一对象,而`equals`默认比较的是对象的内容是否相等。`hashCode`是对象的唯一标识,常用于哈希表的查找效率。 6. **进程与线程的区别**:进程是资源分配的基本单位,拥有独立的内存空间;线程是CPU调度的基本单位,共享进程的资源,拥有独立的执行流。 7. **垃圾回收机制**:当对象变成不可达时,会被垃圾回收器处理。`finalize()`方法是对象在被垃圾回收前的最后一次自救机会,但不应依赖此方法进行资源清理。 8. **Java虚拟机的特性**:包括自动内存管理、垃圾回收、类加载机制、多线程支持、异常处理、动态编译优化等。 9. **Java的集合与继承关系**:Java集合框架包括List、Set、Map三大接口,它们之间存在继承和实现关系。例如,ArrayList和LinkedList都实现了List接口,HashSet实现了Set接口,HashMap实现了Map接口。 10. **父类的静态方法能否被子类重写**:静态方法不能被重写(override),只能被覆盖(overwrite),因为静态方法是属于类的,而非对象。 11. **Java语言中的基本数据类型**:包括整型(byte、short、int、long)、浮点型(float、double)、字符型(char)和布尔型(boolean)。 12. **Java中JDBC访问数据库的步骤**: - 加载JDBC驱动:通过`Class.forName()`加载对应数据库的驱动类。 - 建立连接:使用`DriverManager.getConnection()`创建Connection对象。 - 创建Statement:如Statement、PreparedStatement或CallableStatement,用于执行SQL语句。 - 执行SQL:通过Statement对象的`executeQuery()`、`executeUpdate()`等方法。 - 处理结果:对于查询语句,获取ResultSet对象;对于DML语句,检查影响行数。 了解这些知识点对于理解和解决Java编程中的问题至关重要,同时也对面试准备非常有帮助。