代码演示:
Person p1 = new Person();
int returnRes = p1.getSum(10,20);
public int getSum(int num1,int num2){
int res = num1+num2;
return res;
}
内存演示图:
执行 int returnRes = p1.getSum(10,20);时会单独开一个空间(小栈),把参数传过去,执行完getSum栈时返回值,然后getSum栈销毁。
注:getSum是一个独立的栈,做出的参数值改变不会影响main栈,所以如果是值交换的方法,传参数的形式无法将主栈数值交换;
引用类型传递则是址传递,主栈会受到影响
举例:
Person p = new Person();
p.age = 10;
p.test200(p);
public int test200(Person p){
p = null;
}
内存图:
指向null的是test200的栈的p;不是主栈的p;
但是test200的栈的p可以影响主栈的属性变化
相当于两个上级都可以操作同一个下级