JVM入门(三)认识finalize

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/x18094/article/details/89394964

JVM入门(三)认识finalize

finalize是Object对象自带的方法

1.GC回收前会调用一次finalize方法,并且相同的对象只调用一次finalize方法。(比如你调用了两次System.GC,但只会执行一次finalize方法)
2.JVM创建一个低优先级的线程调用finalize,因此很有可能对象已经回收了,finalize还没执行完毕。即不保证执行顺序。
3.System.GC只是一个回收通知,不保证真的被回收了。
4.对象销毁过程对应的状态:

unfinalized(不执行finalize)-->finalizable (准备执行finalize)--->finalized (已经执行finalize)
5.GC有一个Queue,叫F-Queue,当对象状态变为finalizable ,会添加到F-Queue中,等待执行finalize方法。

猜你喜欢

转载自blog.csdn.net/x18094/article/details/89394964