Java对象与垃圾回收

1.垃圾回收机制只负责回收堆内存中的对象。

2.垃圾回收机制回收任何对象之前,总会调用它的finalize方法,该方法可能使该对象复活,从而使垃圾回收机制取消回收。

3.对象在堆内存中有三种状态:

激活状态:即有一个或以上引用变量引用该对象

去活状态:即没有任何引用变量引用该对象,这时垃圾回收机制准备回收该对象所占有的内存,回收之前,会调用对象的finalize方法,如果方法中让一个变量重新引用该对象,则这个对象再次变为激活状态,否则该对象进入死亡状态。

死亡状态:如果对象的finalize方法已被调用,且仍没有变成激活状态,那么该对象将永久失去引用,从而变为死亡状态。垃圾回收机制才会在这时真正的回收该对象所占有的资源。

如图:

4.强制垃圾回收:

强制通知系统进行垃圾回收,但系统是否回收依然不确定。

强制垃圾回收两个方法:

       1).System.gc();

       2).Runtime.getRuntime.gc();

5.不要主动调用某个对象的finalize方法,可以通过如下两个方法强制垃圾回收机制调用去活对象的finalize方法: 

      1).System.runFinalization();

      2).Runtime.getRuntime.runFinalization();



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值