我很难理解以下内容:
"Java语言规范允许使用虚拟gc()方法."
为什么标准会这样做?
它有效地使java 可选的一个非常重要的功能.
这也意味着我的同一个程序在两个不同的JVM实现上表现不同!完全违反Java 可移植性的重要特性.
Kon*_*lph 13
它有效地使java可选的一个非常重要的功能.
在Java中,GC 不是可选的.什么是可选的是显式垃圾收集,由调用触发gc()
.这是完全可以接受的,因为很少需要显式地触发垃圾收集并且干扰现代垃圾收集器的功能.
调用gc方法表明Java虚拟机花费了大量精力来回收未使用的对象,以使其当前占用的内存可用于快速重用.当控制从方法调用返回时,Java虚拟机已尽最大努力从所有丢弃的对象中回收空间.
gc()
不保证调用会触发垃圾回收.即你不能强迫垃圾收集.这就是为什么这个方法可以是假的.
上面提到的"尽力而为"可能是"等待隐式垃圾收集".