值传递传递的是值得地址,引用传递传递的是句柄的地址。
解释:值传递就是:比如new一个Object类型的对象,把引用给一个变量x,这个值(对象)和变量都会占内存(引用在栈中,值在堆中,分开存储),所以肯定都有一个地址,变量的地址就是引用地址,想让其他变量也指向这个对象空间,可以让Object y=x,这个时候传给y的是值(对象)的地址,java中用的是值传递,没办法获取句柄地址(也就是变量x的地址)。
值传递中,方法b中无法改变方法a中变量的指向,引用传递中,方法b中可以改变a方法中变量的指向。
java,Go,python,PHP,C#,js等都是按值传递。C++语言中有按引用传递,指针也是按值传递。
![](https://i-blog.csdnimg.cn/blog_migrate/f85de584f7a00186f2f97b1f36924ce4.png)