java的值传递,上面这个图可以进行说明
1.当给一个数组进行赋值的时候,会在jvm虚拟机的栈里面创建一个变量arr1指向堆中的一块内存地址,实际上arr1的值就是一个内存地址,在地址指向的堆内存中存储这真正的数组数据。
2.当将arr1赋值给arr2的时候,实际上是将arr1保存的地址值赋值给了arr2,这就是值传递的关键部分
3.当对arr2进行数组操作的时候,实际上是对堆内存里面的数据进行操作,而arr1和arr2指向的是同一块内存地址,所以在对arr2进行操作的时候,arr1也会发生变化。