在Java中,参数传递有两种,按值传递和按引用传递。然而,Java中的参数传递方式实际上是按值传递。
按值传递的含义是:
1、在方法调用时,将实际参数的值传递给方法内部的形式参数;
2、这意味着当你将一个变量作为参数传递给方法时,传递的是该变量的值而不是它在内存中的地址或引用。
下面看个示例
我们发现输出结果并没有交换,这是因为我们在方法内改变了引用指向一个新的对象,这样的结果就是新对象对应的值跟原对象的值产生交换效果,而原对象没有发生改变。
再来看下面这个
我们发现输出结果交换了,在 swap
函数内部进行了属性交换,但由于Java是按值传递的,实际上传递的是对象引用的副本,所以在函数外部仍然能够访问交换后的属性值。