Java中的值传递
本文最后更新于:2022年8月7日 上午
尽量用自己的话说明白
值传递
首先,Java中只有值传递。
- 对于基本数据类型,传递的值的内容是 实参的值的拷贝;
- 对于对象,传递的值的内容是 实参的地址的拷贝;
Java中调用函数时,传入的是实参,函数的定义中括号内的是形参。
对于基本数据类型 int double
对于调用函数func(int a)
,先将传入的实参复制一份,然后将该复制的值传递给形参。
形参得到的是一个值的复制,是局部的,对于这个局部值的改变不会影响实际参数的值。
对于对象 Object
调用函数func(Object obj)
,先将传入的实参的地址复制一份,然后将该地址的拷贝传递给被调函数的形参。
这样,现在就有2个地址的值,分别是原来的实参的地址和拷贝得到的地址,这两个地址指向堆中同一个对象。
此时,对于形参所指的对象进行变更,就会改变实际参数的值。
参考资料:
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!