Java 的垃圾回收机制是指在 Java 应用程序运行过程中,当一些对象不再被引用,也就是不再被程序使用时,JVM 会自动回收这些对象所占用的内存空间,从而保证程序的正常运行。
以下是一些与 Java 垃圾回收相关的面试题及答案:
- 什么是 Java 的垃圾回收机制?为什么需要垃圾回收?
答:Java 的垃圾回收机制是指在 Java 应用程序运行过程中,当一些对象不再被引用,也就是不再被程序使用时,JVM 会自动回收这些对象所占用的内存空间,从而保证程序的正常运行。需要垃圾回收的原因是,在程序运行过程中,由于动态创建对象、调用方法等操作,可能会产生大量的临时对象和垃圾数据,如果不及时清理这些垃圾数据,就会导致内存泄漏和内存溢出等问题,从而影响程序的性能和稳定性。
2.什么是对象的引用计数?Java 中使用了引用计数吗?
答:对象的引用计数是指在对象被创建时,为该对象分配一个计数器,每当有一个引用指向该对象时,计数器加一,每当有一个引用离开该对象时,计数器减一。当计数器的值为零时,该对象就成为垃圾数据,可以被垃圾回收器回收。Java 中并没有使用引用计数算法,而是使用基于可达性分析的垃圾回收算法。
3.Java 中有哪些垃圾回收算法?各有什么优缺点?
答:Java 中常用的垃圾回收算法有标记-清除算法、复制算法、标记-整理算法和分代算法。它们的主要优缺点如下:
- 标记-清除算法:优点是实现简单,不需要额外的空间,但缺点是可能会出现内存碎片,从而导致内存分配效率降低。</