Java的值传递
- 实参
主调函数调用一个有参函数时,函数名括号后面的参数称为实参 - 形参
在定义函数的时候使用的参数 - 求值策略
- 非严格求值(即有参的函数(方法)只有调用参数的时候才对参数读值)
- 严格求值(以下三类)
- 值传递
- 将实际参数复制一份给形参,形参的改变不会对实参照成影响
- 引用传递
- 将实际参数的地址传递给形参,形参的改变或者修改都会对实参照成影响
- 共享对象传递
- 将实际参数的地址复制一份给形参,形参的修改对调用用者而言是可见的
- 将实际参数的地址复制一份给形参,形参的修改对调用用者而言是可见的
- 值传递
所以Java中的值传递可以看作是共享对象传递,形参和实参共享同一个地址
(对同个一个地址中的属性进行修改,共享的对象都能看到,这很合理)
Java的值传递中,对于参数是引用类型而言,可以说是引用对象的值传递。
参考资料
- 《Java工程师的成神之路》
- 《JS中的求值策略》