Java - 是否可以对正在执行方法的对象进行垃圾回收?
2022-09-02 12:10:39
在Java中,我做了如下事情,而没有多想:
public class Main {
public void run() {
// ...
}
public static void main(String[] args) {
new Main().run();
}
}
但是,最近我不确定这样做是否安全。毕竟,创建对象后没有对对象的引用(好吧,有引用,但这算数吗?),所以看起来垃圾回收器可能会在执行某些内容时删除对象。因此,也许该方法应如下所示:Main
this
main
public static void main(String[] args) {
Main m = new Main();
m.run();
}
现在,我很确定第一个版本是有效的,我从来没有遇到过任何问题,但我想知道它是否在所有情况下都是安全的(不仅在特定的JVM中,而且最好根据语言规范对这种情况的看法)。