在java中,只有值传递。
值传递,传递的是实际参数的一个副本,这个值可能是基本类型,也可能是引用类型的地址。
比如,在调用的a方法里,把第一个形参int a从10赋值成1,那么就是把main方法的int a的值copy给了a方法里的int a的值,那么int a的值在a方法里,就变成了1,而在main方法里,仍然是10。
但是如果值传递的是引用类型,那么传递的就是引用类型的地址,比如把arr[]{1,2,3}数组进行值传递,那么传递的便是这个数组的地址,如果把arr[1]重新赋值成1000,由于在JVM中栈内存和堆内存里都指向了这个数组的地址,那么值传递后,两个方法都指向的这个数组值就变成了arr[]{1,1000,3}。