图一
该代码执行为;1
main方法创建一个局部变量 int a=1;
main方法进入栈内存,变量 a也进入栈内存,调用function方法,function方法进入栈内存, a传入方法function,a=6(重点,a=6是属于function的局部变量,运行结束,function出栈),main方法的a变量还是等于1
图二
该运行结果是
张三,李四
输出第一个p.name时是从堆内存的Persion对象中取出来是张三,执行function方法,function方法拿到堆内存的Persion对象的name变量进行赋值,这时候 对内存的name值变成李四, function方法执行完 栈内存移除栈,回到main方法继续执行代码,输出,再取出堆内存的Persion对象的name变量,这时候值就是李四了