结论
java只有值传递,没有引用传递
什么是值传递?
值传递(pass by value)是指在调用函数时将实际参数复制一份传递到函数中,这样在函数中如果对参数进行修改,将不会影响到实际参数。
重点是“复制”
什么是引用传递?
引用传递(pass by reference)是指在调用函数时将实际参数的地址直接传递到函数中,那么在函数中对参数所进行的修改,将影响到实际参数。
重点是“直接传递”
辨析
值传递和引用传递区别的重点是传递参数是否是拷贝。
java只有值传递(复制传递的参数),传递的参数是引用类型时,也是值传递,因为传的是引用值的拷贝,并不是直接将引用值传递过去。
模拟场景:朋友去你家玩,你把钥匙(相当于引用,指向房子对象)复制一份给他,属于值传递;你把钥匙直接给他,属于引用传递。无论哪种方式,他都可以进入房子(对象),改变室内的东西(属性)。
错误理解:传递的参数如果是普通类型,那就是值传递,如果是对象,那就是引用传递。
借鉴链接:https://blog.csdn.net/bjweimengshu/article/details/79799485?utm_source=app&app_version=4.5.8