java finalize和垃圾回收

我看thinkinginjava。上面说垃圾回收器先调用对象的finalize方法,下次回收时才释放内存,为什么不调完接着释放,而是要两次呢?... 我看thinking in java。上面说垃圾回收器先调用对象的finalize方法,下次回收时才释放内存,为什么不调完接着释放,而是要两次呢? 展开
 我来答
aspwolf1470
2014-11-22 · TA获得超过2643个赞
知道小有建树答主
回答量:1287
采纳率:0%
帮助的人:1252万
展开全部
java的垃圾回收不是由你来控制的
你调用那个finalize方法只是告诉垃圾回收器,这个东西可以回收了
然后到底什么时候会回收,就看回收器的心情了(这个就是“下次回收时才释放内存”的意思)
追问
我的意思是问,为什么非得两次,不是一次。为什么这么规定
追答
因为
1、java的垃圾回收是自动进行的

2、垃圾回收器是按自己步调来工作的
至于为啥设计成以上那样,那我不能解释

至于为什么程序员只能将对象标记为可回收(也可以调用方法建议回收),这个肯定是跟回收器的工作量还有工作效率有关。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式