黑马程序员技术交流社区
标题:
System.gc();这句代码是什么意思及使用方法
[打印本页]
作者:
费破的可
时间:
2013-10-24 10:21
标题:
System.gc();这句代码是什么意思及使用方法
本帖最后由 费破的可 于 2013-10-25 18:04 编辑
class Demo extends Object
{
public static void finalize()
{
System.out.println("demo ok");
}
}
class ThreadDemo
{
public static void main(String[] args)
{
new Demo();
new Demo();
new Demo();
System.gc();//(这句话的具体意思以及怎么使用和实现调用的???)
System.out.println("Hello World!");
}
}
作者:
匡文
时间:
2013-10-24 10:29
而java虚拟机在默认情况下只有到内存接近饱和是才会调用垃圾回收器,这时候就可以使用System.gc()呼叫java虚拟机的垃圾回收器运行 回收内存的垃圾。但是要记得一点,System.gc()并不会马上进行垃圾回收,甚至不一定会执行垃圾回收。内存回收是有条件的,不是你想回收就回收,即使是你通知,也要等条件满足了。另外,回收线程和主线程是不分先后的。并且,你输出一句话,并不代表线程就一定结束,只是说明这句话被执行了。
另外Java提供了一个名为finalize()的方法,它的工作原理应该是这样的:一旦垃圾收集器准备好释放对象占用的存储空间,它首先调用finalize(),而且只有在下一次垃圾收集过程中,才会真正回收对象的内存。这时候你就可以看到System.gc()的清理效果了。
作者:
烟花雨
时间:
2013-10-24 10:38
System.gc();就是呼叫java虚拟机的垃圾回收器运行 回收内存的垃圾
而java虚拟机在默认情况下只有到内存接近饱和是才会调用垃圾回收器 所以一般是等不到java自动运行垃圾回收器的
作者:
乔兵
时间:
2013-10-25 08:22
楼主你好,如果问题已解决请将帖子状态修改为提问结束,
如果未解决请继续提问,谢谢合作
修改方法请看解释帖:
http://bbs.itheima.com/thread-89313-1-1.html
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2