gpt4 book ai didi

java - Java GC可以收集实例吗,而它是由方法使用的

转载 作者:搜寻专家 更新时间:2023-11-01 01:51:08 25 4
gpt4 key购买 nike

我有一个关于 Java GC 的简单问题。一些例子:

Object instance = new Object();
longMethod(instance);

...

// First example
private void longMethod(Object arg) {
Thread.sleep(1000 * 60 * 60)
// this method works 1hr. Does it keep reference to Object and GC canot release it?
}

//Seconde example
private void longMethod(Object arg) {
arg = null;
Thread.sleep(1000 * 60 * 60)
// we clear reference in method. Can GC relese Object now?
}

那么在这两种情况下“实例”的生命周期是什么?谢谢。

最佳答案

在这两种情况下,Object instance,它是调用longMethod的方法的局部变量,持有实例的引用,所以GC无法释放它在调用 longMethod 的方法结束之前。

请注意,arg = null 仅将 longMethod 中的本地引用设置为 null。它不会更改调用 longMethod 的方法中的 instance 变量的值。

关于java - Java GC可以收集实例吗,而它是由方法使用的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31219865/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com