当调用非 void 方法而没有返回值的接收对象时,JVM 会做什么? 它只是在找不到接收者的那一刻销毁返回的对象?或者它让返回的对象由垃圾收集器管理?或者是其他东西?。例如:
public class PrincipalClass {
public static void main(String[] args) {
returnStringMethod();
}
public static String returnStringMethod() {
return "Hello, Java world!";
}
}
“Hello, Java world!”发生了什么?那个被退回了?什么时候销毁?
最佳答案
假设您点了一顿饭。饭菜装在一次性盒子里。你把食物拿出来,吃了。现在这些盒子对你来说毫无用处。你用它们做什么......?丢弃它们。 Java GC 也是如此。当任何对象没有通过任何对象引用,或者不可访问时,它会在下次触发 gc 时获取。查看此情况的一个好方法是打开 jvisualvm 并继续跟踪字符串文字,然后触发 gc。您会实时看到事物。
我希望这有帮助..!
关于java - Java 中不分配返回值的非 void 方法调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52101374/