您的位置:首页 > 编程语言 > Java开发

Java学习之System.gc和System.runFinalization

2018-03-19 23:01 190 查看
(1)System.gc();
//告诉垃圾收集器打算进行垃圾收集,而垃圾收集器进不进行收集是不确定的
new Chair();  
        System.gc(); 这个不一定会执行Chair对象的finalize方法   你可以这样测试 

        while(true){
            System.gc();
        }
这样执行会看到Chaeir对象执行他的finalize方法
(2)System.runFinalization();
//强制调用已经失去引用的对象的finalize方法
这样使用
     System.gc();
     System.runFinalization();
要在runFinalization之前执行gc();

总结:
finaliztion是个可以被应用层重载的函数,当GC回收一个对象时,它会先调用对象的这个函数然后再处理其它事情。
所以应用可以重载这个函数,去做一下想在GC前收尾的工作

前者是把占了内存但是没有利用,同时没有被垃圾回收机制处理的对象尽可能的处理掉。

后者是强制垃圾回收机制尽可能的回收没有被利用的对象,以释放出其占用的内存。

转载来源 http://blog.csdn.net/qq_36291682/article/details/53455643
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: