|
1
6
我敢打赌
这个
|
|
|
2
0
谜题很有趣,但对于不想考虑(或更重要地依赖)垃圾收集更神秘方面的务实程序员来说,设置
当然,令人遗憾的是,当数组超出范围时,内存并没有立即释放,这正是人们希望的 this thread 这应该在JVM中修复。 |
|
|
3
0
所有这些行为都依赖于实现。垃圾回收器在自己的异步线程中运行,该线程与程序的同步行为无关。您根本不知道data1引用的数组何时会被垃圾收集——您只能希望它在超出范围/对它的所有引用都消失后的“合理”时间内发生。 如果担心程序内存不足,可以使用System.gc()显式尝试触发垃圾收集循环。但即使这样也不能保证在分配数据2时有足够的内存可用。调用System.gc()只是向运行时发出一个提示,提示您现在需要一个垃圾收集周期。
更新:尴尬。正如其他几位评论者提醒我的那样,在jvm抛出OutOfMemory错误之前,会显式触发垃圾收集周期。然而,这种行为仍然是不确定的:正如 this link 解释说,jvm不能保证在一个垃圾收集周期内检测到所有死对象。 |
|
4
-1
您在实例化之前依赖GC进行收集?
|
|
|
user29759326 · 如何返回递归函数中的最后一个值? 1 年前 |
|
|
malife89 · 将java中的字符串读取为正确的日期格式 1 年前 |
|
|
Tim · 在java中,有没有更快的方法将字节数组写入文件? 1 年前 |
|
|
rudraraj · java中未声明最终变量 1 年前 |
|
|
Bala Ji · 以下BFS的实施效率如何? 1 年前 |