首页 > 代码库 > Java垃圾回收机制

Java垃圾回收机制

    Java平台通过垃圾回收器(GC)进行自动的内存管理,主要负责完成3个任务:分配内存、确保被引用对象的内存不被错误回收,以及回收不再被引用对象的内存空间。一般情况下,当垃圾回收器在进行回收操作时,整个应用的执行暂时中止。因为垃圾回收器要更新应用中所有对象引用的实际内存地址。不同硬件平台所支持的垃圾回收方式也不同。

    垃圾回收机制最基本做法是分代回收。内存被划分成不同的世代(年轻、年老、永久),对象根据其存活时间被保存在对应世代区域中,且不同世代垃圾回收算法不一。内存分配发生在年轻世代。当一个对象存活时间够长,就被复制到年老世代。

Java提供3种垃圾回收机制:

串行回收方式:使用单个CPU回收年轻和年老世代的内存,适合于一般的单CPU桌面平台。在垃圾回收过程中,应用程序被暂时中止。回收方式使用的是分代回收。

并行回收方式:用这种方式对年轻世代进行回收时,会使用多个CPU并行处理,提升回收性能。了;

并行标记——清除回收方式:可以在应用运行的同时标记存活对象与回收垃圾,只需较短时间中止应用,适合于对应用的响应时间要求比较高的情况。

Java垃圾回收机制