读书人

每天一题(七)

发布时间: 2013-10-28 11:21:45 作者: rapoo

每日一题(七)

题目:

jvm内存回收机制之对象的内存状态

分析:

根据被变量引用过程,分为三种状态:可达状态、可恢复状态和不可达状态

解答:

这三种状态的转换是对象在内存整个生命周期中所经历的三个阶段。

可达状态:对象创建之后,有一个以上的变量引用该对象。如果像


上图是引用的博客中的图片。

补充:

finalize()方法是java.lang.Object对象方法。jdk上这样描述该方法“ 当垃圾回收器确定不存在对该对象的更多引用时,由对象的垃圾回收器调用此方法。”

有一点需要注意,对于任何给定对象,Java 虚拟机最多只调用一次 finalize 方法。也就是说如果在调用一次只后,恢复到可达状态,那么java虚拟机将不会再次调用finalize()方法。这点有点奇怪,对此留下进一步思考的余地。

读书人网 >其他相关

热点推荐