JVM什么时候被垃圾回收器回收?
非严格说法:从根对象访问时某个对象不可到达--某个对象没有被任何对象引用时会被垃圾回收器回收。
严格说法:当一个对象不可触及时将会被垃圾回收器回收。
注:可触及行包括三种状态
- 可触及的--从根节点开始可以到达这个对象
- 可复活--对象没有被任何对象引用(对象所有引用释放),但对象在 finalize()方法中复活
- 不可触及--对象所有引用释放,finalize()方法被调用,但对象没复活就会进入不可触及状态。不可触及状态对象不可能复活,因为finalize()方法只会调用一次