笔记02 Java中的垃圾回收机制
Feb 18 2024
在Java中,垃圾回收(Garbage Collection,GC)是自动管理内存的一种机制。Java的垃圾回收机制通过自动识别和释放不再使用的内存对象,减少了程序员手动释放内存的工作量,并提高了程序的内存管理效率和安全性。
Java的垃圾回收机制基于以下几个关键概念:
-
对象的生命周期:Java中的对象在内存中有一个生命周期,从创建到最终被销毁。当一个对象不再被引用时,它就成为了垃圾。
-
引用:Java使用引用来访问对象。当一个对象被引用时,它的引用计数加1;当一个引用被释放时,它的引用计数减1。当对象的引用计数变为0时,说明没有任何引用指向该对象,它就可以被回收。
-
垃圾回收器:Java的垃圾回收器是负责执行垃圾回收的组件。它会周期性地扫描内存,标记出可以被回收的对象,并释放它们占用的内存。
Java的垃圾回收机制的工作过程如下:
-
标记阶段:垃圾回收器首先会从根对象(如堆栈和静态变量)开始,遍历可达对象的引用链,标记出所有可达对象。即将要回收的对象会被标记为垃圾。
-
清除阶段:在标记阶段之后,垃圾回收器会清除所有标记为垃圾的对象,并回收它们所占用的内存空间。
-
压缩阶段(可选):有些垃圾回收器会进行内存压缩,将存活的对象移动到一起,以便释放更多的连续内存空间。