【发布时间】:2018-08-30 16:09:29
【问题描述】:
在没有返回值的接收对象的情况下调用非 void 方法时,JVM 会做什么? 它只是在找不到收件人的那一刻销毁返回的对象?还是将返回的对象留给垃圾收集器管理?或者是其他东西?。例如:
public class PrincipalClass {
public static void main(String[] args) {
returnStringMethod();
}
public static String returnStringMethod() {
return "Hello, Java world!";
}
}
“你好,Java 世界!”会发生什么?那被退回了?什么时候销毁?
【问题讨论】:
-
这个问题在这里可能已经有了答案:stackoverflow.com/questions/23977883/…
-
没有 Java 方法返回对象,尽管其中许多方法返回对象的引用。如果这样的引用被忽略,那么它就会丢失。作为一个完全独立的问题,VM 中没有实时引用的对象有资格进行垃圾收集。鉴于可以对同一个对象有多个引用,在这个通用级别上,方法的返回值被忽略与它可能引用的任何对象的处置之间没有特定的联系。
标签: java memory-management garbage-collection jvm