关于Java参数传递问题的一点思考, 主要关注以下两个问题:
1. 参数是如何传递的?
参数通过复制的方式传递。
对于基本类型,复制的方式类似于复制文件:
image.png
通过复制的方式传递, 我们对副本的任何修改都不会影响到原本的数据。
对于引用类型, 复制的方式类似于复制快捷方式:
image.png
当我们复制快捷方式(引用)时, 我们仍然可以通过复制过的引用来找到
Car object
, 我们对对象的任何修改都会反应到对象本身。
2. 传值还是传引用?
Call by reference (also referred to as pass by reference) is an evaluation strategy where a function receives an implicit reference to a variable used as argument, rather than a copy of its value.
根据维基百科的定义,传引用是不能复制再传递的,所以Java对于任何类型都是采用的传值调用方式。