如果程序中不断的执行生成一个对象,再赋值为null,并执行System.gc(),堆还是很快就会满的。
个人分析原因如下:System.gc()这个方法的执行,JVM确实回去清理堆,但是清理的线程的优先级会比较低,所以时间长了堆自然会满的,但是如果在System.gc()这个方法调用之后让主线程有个短暂的暂停,那么堆永远就不会满的。
个人分析原因如下:System.gc()这个方法的执行,JVM确实回去清理堆,但是清理的线程的优先级会比较低,所以时间长了堆自然会满的,但是如果在System.gc()这个方法调用之后让主线程有个短暂的暂停,那么堆永远就不会满的。
探讨了在程序中不断创建并销毁对象,同时调用System.gc()进行垃圾回收时,Java虚拟机(JVM)堆内存使用情况及原因分析。实验表明,即使频繁调用System.gc(),若不适当控制主线程,堆内存仍会逐渐填满。
809

被折叠的 条评论
为什么被折叠?



