System.gc()和Runtime.gc()和finalize()的联系

    首先,System.gc()和Runtime.gc()是没有任何区别的, 每个 Java 应用程序都有一个 Runtime 类实例,使应用程序能够与其运行的环境相连接。可以通过 getruntime 方法获取当前运行时。
    在API中Runtime类的gc方法是这样写的:

    名称 gc 代表“垃圾回收器”。虚拟机根据需要在单独的线程中自动执行回收过程,甚至不用显式调用 gc 方法。
    方法 System.gc 是调用此方法的一种传统而便捷的方式。
 
    跟踪一下源码就可以发现调用System.gc()实际上就是调用Runtime.getRuntime().gc();
    
    他们都是用来提示JVM进行垃圾回收的,是由系统自动调用的,不需要人为调用,但是,是立即回收还是延迟回收是取决于JVM的,
finallize()定义在Object类中,在释放对象占用内存之前,会调用该方法,一般建议在该方法中释放对象所持有的资源.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值