java新手关于基本参数传参和引用变量传参的区别
java新手关于基本参数传参和引用变量传参的区别在传int的时候,变量互换之后,成员变量xy的值没有变,还是x=1y=2,但是引用参数数组的时候,交换值之后,成员变量的值...
java新手关于基本参数传参和引用变量传参的区别在传int 的时候,变量互换之后,成员变量xy的值没有变,还是x=1 y=2,但是引用参数数组的时候,交换值之后,成员变量的值也变了是为啥。
展开
1个回答
展开全部
要解决这个问题,首先你必须得理解两个概念。
值传递:在具体的实参传递到方法中定义的形参的时候,传递的是值的拷贝,也就是复制一份来的值,这样就有个两个值,在方法内部对参数进行处理的时候,实际上是处理的那个拷贝后的值,而原来的值更本没有改变,因此就不会动。
引用传递:在具体的实参传递到方法定义的形参的时候,传递的是引用的地址的拷贝,也就是对象在堆中的地址,这样的话指针指向实际对象的值是同一个,也就是你传递了引用,其实也就改变了对象本身。
ps:也有一种说法是引用传递也是值传递,其实是不同的说法,本质上都是一样的。
数组都是引用数据类型,因此属于引用传递。也就是说他们传递的过程会对值本身产生变化,而int是基本数据类型,属于值传递,传递前后参数和原始值没有任何关系,所以值不会发生变化。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询