四、垃圾回收 --- 根搜索法

垃圾回收(GC)

需要做三件事情:

  1. 哪些内存可以回收?
  2. 什么时候可以回收?
  3. 如何回收?

 

Java 是通过根搜索法判定对象是否存活的。

image

基本思路:以“GC roots”的对象为起点。从这些节点开始向下搜索,搜索路过的路径成为“引用链”

当GC roots 没有任何引用链相连时,便可回收此对象。

可以作为GC roots 的对象有:

  1. 虚拟机中的栈引用的对象(即是栈中的本地变量表)
  2. 方法区中类静态属性引用的对象
  3. 方法区中常量引用的对象
  4. 本地方法栈中的Native方法引用的对象
原文地址:https://www.cnblogs.com/pan2011/p/3577335.html