java基本数据类型和引用数据类型的调用传递的区别

(1)基本数据类型:就是进行了值的传递把一份数据拷贝了之后传递过去


(2)引用数据类型:实际上也是进行了数据拷贝然后传过去,实际上也是值传递,只 不过传递过去的值和原有的值指向了同一个对象  所以在调用的方法中可以对原来的数据进行影响,这是因为二者指向的是同一个对象。 但这不是按引用调用!如下代码可证明这一点:
对象之间的赋值是需要指针相互赋值的,而由于这里User x和y仅仅是一个值的拷贝,他们仅仅是表面上的东西是一个实例,对他们进行交换不会影响在底层的真正的对象的交换。所以这个函数调用不会引起两个对象的交换

但是如果在被调用的函数中 ,拷贝的对象执行了对于真正对象的数据修改是可以改变后续的对象的值的,因为后续的对象仍然会引用这个被修改过的对象 。比如以下代码证明了这一点:
这个过程实际上是这样的:


你可能感兴趣的:(java)