java垃圾回收问题

来源:百度知道 编辑:UC知道 时间:2024/06/21 18:40:24
Object obj = new Object();
obj=null;
请问在第几句话处回收,为什么?

obj=null;
这句之后,不过它什么时候去回收,看它心情了!
因为obj=null; 之后,开辟的堆内存找不到主人了!

当然是系统自动回收啦

自动回收,是程序运行一段时间以后自动回收,不能说是在第几句的时候回收。如果用netbeans的话还能手动回收。

java中的垃圾回收是系统自动确定的。单看这段代码,应该是obj=null;处被回收。因为Object obj = new Object(); 创建了一个对象。但是而后又让obj指向null,刚才创建了那个对象已经毫无用处了。所以应该被回收了。但是这不是绝对的。可能系统会再obj=null;以下的代码处来回收这个内存。可以使用System.gc()来让系统执行垃圾回收

当一个对象没有被引用时,并且当jvm内存满的时候才会自动回收!一定要满足这两个条件时才回收的!所以并不一定回收!

obj=null; 这句不能回收,java中自己判断是否该回收,如果真想自己回收,可以试试System.gc();