GC的判定

对象是否死亡的2种判定方法,引用计数和可达性分析(又称引用链)。

1.引用计数

对象添加引用计数器,产生引用+1,引用失效-1,但是很难解决对象之间循环相互引用的问题。

2.可达性分析算法

选定一个对象作为GC Roots,如果一个对象对GC Roots不可达,那么就回收。

作为GC Roots的对象包括下面几种:

  • 虚拟机栈中引用的对象。
  • 方法区类静态属性引用的对象。
  • 方法区中常量引用的对象。
  • 本地方法栈中引用的对象。

四类引用:强引用、软引用、弱引用、虚引用(唯一作用是对象被收集时收到通知,1.2提供了PhantomReference类实现虚引用)

你可能感兴趣的:(●,JAVA虚拟机)