关于垃圾回收

本文讨论了Java中垃圾回收(GC)的重要性,特别是从安全性角度出发,避免悬挂指针带来的问题。作者提出了对于GC技术实现的一些疑问,包括如何有效搜索对象句柄及finalizer执行顺序等问题。

我首先思考的是,垃圾回收(GC)的必要。

考虑有三个指针a,b,c都指向同一个对象。如果允许执行:delete c;那么a和b将成为悬浮指针。这就容易导致一些程序错误发生。

因此, java需要GC,首要的原因就是安全性。正是由于安全性的问题导致GC的出现。

GC在技术上的实现,目前我尚不清楚。一个主要疑惑是:对象句柄可能存在于方法区,存在于成员变量,存在于栈中;如果要搜索所有这些地方,

代价岂不是很大?另外如何识别栈中的对象句柄?

对finalizer次序的担忧:考虑有两个或更多的对象,它们的finalizer执行的次序可能是有关系的,不同的执行次序可能导致不同的结果。

我没有看到java对finalizer的执行次序有什么原则。(象C++,由于对象的析构是明确的或者显式的,因此没有争议)

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值