java中的垃圾回收

来源:互联网 发布:听歌学英语的软件 编辑:程序博客网 时间:2024/06/11 17:53

相对于c语言的这种由开发人员显式的分配内存、释放内存,如果处理不当往往会造成内存泄露的问题。java的垃圾回收机制监视java程序的运行,自动释放不再使用的对象的内存。java使用软指针(指向对象引用的指针)来跟踪对象的所有引用。并使用一个对象表将软指针映射为对象的引用。垃圾收集器以单独的线程在后台运行,通过软指针依次检查每个对象。

垃圾收集器会不定时的检查对象的各个引用,如果一个对象没有任何的引用指向它,那个它可以被回收。

我们可以主动调用静态的gc()方法来运行垃圾收集器,但是并不能保证这样就可以立即回收指定的对象。

因此我们不应该试图去假设垃圾回收发生的时间,这是未知的。

一个对象所占用的内存符合垃圾回收的标准是,没有任何引用指向该对象。

Object a=new Object();Object b=a;a=null;b=null;
如上面的对象,它开始有两个引用a和b指向它,当最后没有引用指向它时(a=null,b=null),它便符合垃圾回收标准。

原创粉丝点击