java新手关于基本参数传参和引用变量传参的区别

我请说下,java新手关于基本参数传参和引用变量传参的区别?

java新手关于基本参数传参和引用变量传参的区别在传int 的时候,变量互换之后,成员变量xy的值没有变,还是x=1 y=2,但是引用参数数组的时候,交换值之后,成员变量的值也变了是为啥。
最新回答
自古美人都是妖

2024-11-30 10:13:08

要解决这个问题,首先你必须得理解两个概念。

值传递:在具体的实参传递到方法中定义的形参的时候,传递的是值的拷贝,也就是复制一份来的值,这样就有个两个值,在方法内部对参数进行处理的时候,实际上是处理的那个拷贝后的值,而原来的值更本没有改变,因此就不会动。

引用传递:在具体的实参传递到方法定义的形参的时候,传递的是引用的地址的拷贝,也就是对象在堆中的地址,这样的话指针指向实际对象的值是同一个,也就是你传递了引用,其实也就改变了对象本身。

ps:也有一种说法是引用传递也是值传递,其实是不同的说法,本质上都是一样的。

数组都是引用数据类型,因此属于引用传递。也就是说他们传递的过程会对值本身产生变化,而int是基本数据类型,属于值传递,传递前后参数和原始值没有任何关系,所以值不会发生变化。