Java对象在内存中的状态

可达的/可触及的

Java对象呗创建后,如果被一个或者多个变量引用,那就是可达的,即从根节点可以触及到这个对象。

其实就是从根节点扫描,只要这个对象在引用链中,那就是可触及的。

可恢复的

Java对象不再被任何变量引用就进入了可恢复状态。

在回收该对象之前,该对象的finalize()方法进行资源整理,如果在finalize()方法中重新让变量引用该对象,则该对象再次变为可达状态,否则该对象进入不可达状态。

不可达的:

Java对象不被任何变量引用,且系统在调用对象的finalize()方法后依然没有使该对象编程可达(该对象依然没有被变量引用),那么该对象将编程不可达状态。

当Java对象处于不可达状态时,喜用才会真正回收该对象占有的资源。

原文地址:https://www.cnblogs.com/LoganChen/p/6829096.html