1.GC 思维导图
需要xmind文件可以从公众号加我微信。
2.如何确定垃圾
引用计数法
在 Java 中,引用和对象是有关联的,如果要操作对象则必须用引用进行。
每个对象有一个引用计数器,当对象被引用一次则计数器加 1,当对象引用失效一次则计数器减 1,对于计数器为 0 的对象意味着是垃圾对象,可以被 GC 回收。
画外音:循环引用的问题
先来看一段代码
如果采用引用技术算法,上述代码中 ojb1 和 obj2 指向的对象已经不可能再被访问,彼此互相引用对方导致引用技术都不为 0,最终无法被 GC 回收,可达性算法能解决这个问题。
看下这个过程中的 Java 内存模型: