java学习之finalize()方法

我们知道,java的垃圾回收器会负责清理回收无用对象占用的内存资源。但是,当一个java对象并非使用new创建而获取并占用了内存空间时,该如何清理回收它呢?为了应对这种情况,java提供了一个finalize()方法。在类中定义finalize()方法,一旦垃圾回收器准备好释放该对象占用的空间时,就会调用finalize()方法;并在下一次真正执行垃圾回收动作时,才去释放该对象。因此,可以通过定义finalize()方法在垃圾回收器执行释放动作之时,执行一些重要的清理工作。

通常,finalize方法中的操作与“本地方法”有关,即在java中调用非java方法。目前“本地方法”仅支持c/c++,但是c/c++可以调用其他语言代码。因此,理论上java可以调用任何语言的代码。在非java代码中,如果使用了c语言中的malloc()方法分配内存,除非使用free()来释放,否则将造成内存泄露。因此,需要finalize()方法中调用“本地方法”调用它。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值