垃圾回收是java虚拟机(JVM)自动管理内存的一项重要功能。它通过自动监测和不再使用的对象,释放内存空间,以避免内存空间,以避免内存泄漏和提高应用程序的性能。
1.标记-清除:
标记-清除是基本的垃圾回收算法。它通过标记不可达对象,并清除这些对象所占用的内存空间。
2.复制:
复制算法将内存分为两个区域,通常是新生代的Eden区和两个Survivor区。对象首先被分配到Eden区,当Eden区满时,存活的对象会被复制到一个空的Survivorq区。经过多次幸存者区的复制,最终存活会被移动到老年代。
3.标记-压缩:
标记-压缩算法首先标记出不可达对象,然后将存活对象压缩到另一端,清理掉未被标记的对象。
4.分代:
分代垃圾回收是根据对象的存活周期来划分不同的代。一般将内存分为新生代和老年代,根据不同代的特点采用不同的回收对策。新生代通常是用复制算法,老年代通常是用标记-清除和标记-压缩算法。