public class Test {
public static void main (String[]args) {
new Person p1 = new Person();
int sum = p1.getSum(3,4);
System.out.println(sum);
}
}
class Person{
public int getSum(int a ,int b ) {
int sum = a + b;
return sum;
}
}
输出结果:7
分析上述代码:在 jvm中,主方法在主栈中,首先先在方法区加载 Person 类的信息,然后在堆中为对象开辟一个空间, p1在栈中存的是堆中的地址指向对象,执行到getSum方法时,会在栈中重新开辟一个栈,与主栈相互独立,将 3和4拷贝到新栈中,执行 getSum方法体中的代码,最后返回 sum 的 值到主栈中,主栈用 sum 去接收,当新栈返回 sum后,新栈就会被销毁,垃圾回收机制会把它当成垃圾回收。