浅谈System.gc()

来源:互联网 发布:58网络公关公司 编辑:程序博客网 时间:2024/06/11 21:37
 今天巩固给大家讲讲System.gc()。Java的内存管理着实给各位编程者带来很大的方便,使我们不再需要为内存分配烦太多神。那么讲到垃圾回收机制,就不得不讲讲System.gc()。
 先简单讲讲这个方法是干什么的。首先存在一个误区,有些人认为这个方法是让虚拟机回收不用的对象,但其实并不是,这个方法只是提醒虚拟机,程序员希望你在这回收一下对象,但回不回收还是虚拟机来决定,也就是说程序员对回不回收没有绝对的控制权。
 那么,我们就应该知道虚拟机回收的准则是什么。那么他的准则是什么呢?那就是隐藏的对象会被进行回收。什么是隐藏的对象呢?这是我创的一个词,即没有任何语句会再次访问的对象,他就好像被隐藏了起来,被这个世界忘记。举个例子吧:
A a = new A();
B b = new B();
C c = new C();
b=a;
b=c;
如果这是整段代码,那么当b再次被赋值为c时,也就是a的末日了,因为他不再被使用,b已经指向c了。
 所以说不建议大家反复用System.gc(),最好的解决办法就是,把不用的对象设置为null,便于虚拟机作出判断。
 
原创粉丝点击