Java 价值;除了原语的情况。@BoristheSpider在这种情况下,引用的值被复制。当我将其分配给静态字段时,它在释放并重新用于下一次调用之前占用的堆栈地址,对吗?相反,当我不分配它时,下一个调用使用另一个堆栈地址,对吗?这难道不会导致堆栈溢出错误吗?我的观

Java 价值;除了原语的情况。@BoristheSpider在这种情况下,引用的值被复制。当我将其分配给静态字段时,它在释放并重新用于下一次调用之前占用的堆栈地址,对吗?相反,当我不分配它时,下一个调用使用另一个堆栈地址,对吗?这难道不会导致堆栈溢出错误吗?我的观,java,memory,return-value,Java,Memory,Return Value,价值;除了原语的情况。@BoristheSpider在这种情况下,引用的值被复制。当我将其分配给静态字段时,它在释放并重新用于下一次调用之前占用的堆栈地址,对吗?相反,当我不分配它时,下一个调用使用另一个堆栈地址,对吗?这难道不会导致堆栈溢出错误吗?我的观点完全正确;听起来好像对象的整个内存位置都被复制了。@否。引用使用的内存位置被重用,但分配给对象本身的内存一旦没有引用,就可以进行GC。在将来的某个时刻,该内存将成为GC'd。 package test; public class Test {


价值;除了原语的情况。@BoristheSpider在这种情况下,引用的值被复制。当我将其分配给静态字段时,它在释放并重新用于下一次调用之前占用的堆栈地址,对吗?相反,当我不分配它时,下一个调用使用另一个堆栈地址,对吗?这难道不会导致堆栈溢出错误吗?我的观点完全正确;听起来好像对象的整个内存位置都被复制了。@否。引用使用的内存位置被重用,但分配给对象本身的内存一旦没有引用,就可以进行GC。在将来的某个时刻,该内存将成为GC'd。
package test;
public class Test {
    public static void main(String[] args) {
        returnTrue();
        System.out.println("Finished!");
    }

    public static boolean returnTrue() {
        return true;
    }
}
package test;
public class Test {
    public static boolean Result;

    public static void main(String[] args) {
        Result = returnTrue();
        System.out.println("Finished!");
    }

    public static boolean returnTrue() {
        return true;
    }
}
void m1() {
    int i;
    int j;
    boolean b = m2();
}

boolean m2() {
    float f;
    float g;
    return true;
}
int
int
boolean
int
int
boolean
    float
    float
int
int
boolean