java垃圾回收 什么时候执行

如题所述

Java的垃圾回收机制是Java虚拟机提供的能力,用于在空闲时间以不定时的方式动态回收无任何引用的对象占据的内存空间。
需要注意的是:垃圾回收回收的是无任何引用的对象占据的内存空间而不是对象本身,很多人来我公司面试时,我都会问这个问题的,70%以上的人回答的含义是回收对象,实际上这是不正确的。
System.gc()
Runtime.getRuntime().gc()
上面的方法调用时用于显式通知JVM可以进行一次垃圾回收,但真正垃圾回收机制具体在什么时间点开始发生动作这同样是不可预料的,这和抢占式的线程在发生作用时的原理一样。
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-10-26
垃圾回收是在你的内存中有没有引用的对象或超过作用域的对象时调用的,不过JAVA程序员不用担心内存溢出的问题垃圾回收器会自己清理内存如果你想在垃圾回收器对内存做清理工作前做必要的清理工作时可以调用System.gc()
Runtime.getRuntime().gc()
这两个方法
第2个回答  2011-10-26
java垃圾回收是有jvm自动执行的,不是人为操作的,所以当不存在对某对象的任何引用时,该对象就处于被jvm回收的状态,并不是马上予以销毁。本回答被网友采纳
第3个回答  2011-10-26
上面的大侠说的是正确的
相似回答