例子1

在main中定义对象a,其值为123;
调用test修改a的值为"";
在main中输出a的值,可见a的值并未被test改变,因此test方法中的a只是main中a的值;
image.png

例子2

在main中定义对象e;
由输出结果可见,2次打印对象时结果是一样的;
实际上传递时,传递的是指向对象e的指针内存地址的值;
image.png

例子3

在main中定义对象e;
在test中修改传递指针的内存地址值;
由结果可见,如果是指针传递,则main中的数据应该与test中一样,但实际上不一样,因此可以判断,main中调用test仅仅是传递了指针指向内存地址的值,当这个值变化后,test中的a就不在与main中的e指向同一个对象;
image.png

结合例子1,2,3可见,Java中是值传递


老污的猫
30 声望5 粉丝