java gc 算法
这篇随笔默认你已经了解java的内存模型了,并且对gc算法有简单的了解,图可以让你更清晰。
在Java语言中,GC Roots包括:
虚拟机栈中引用的对象。
方法区中类静态属性实体引用的对象。
方法区中常量引用的对象。
本地方法栈中JNI引用的对象。
Mark-and-sweep算法
copying算法
mark-and-compact算法
分代算法
在研究真实的虚拟机环境之后,开发人员发现,有一部分适合用copying,实例快生快死,一部分则适合用mark-and-compact算法,整个生命周期都存在。而分代算法的含义就是将虚拟机空间分为两代,不同的类型,不同的gc算法。