栈中的数据
栈中有基本类型和对象句柄,基本类型又叫值类型,对象句柄又叫引用类型;java中的方法值中传值时,就有了值传递和引用传递。
基本类型
Java中有8中基本类型,int, short, long, byte, float, double, boolean, char;
引用类型
比如:
Object o=new Object();
o就是引用类型,o是一个指针,指向堆中的变量。
代码分析
值传递
打印结果
内存模型
1、main方法中变量a的初始值是123,没有发生变化;
2、a传到changInt方法中,实际传的是一个变量副本,a的初始值是123,方法中a变成456,是副本发生了变化;
3、main中的值,没有改变,还是123;
引用传递举例
打印结果
内存模型
1、main方法中p的年龄初始值是10;
2、将p传到方法changePerson(),因为是引用类型,对象在堆中是同一块地址。方法中修改了年龄为15;
3、main中再去访问时,年龄发生变化,所以修改后的年龄是15;