Java的值传递和引用值传递的区别

值传递针对的对象主要包括:基本数据类型以及其对应的封装类,还有引用类型中特殊的String类型;

值传递的时候,将实参的副本传递给形参,所以无论调用的这个方法里面如何对形参进行改变,都不会影响实参的值,因为副本作为局部变量,在其行为结束时候,就会被回收(失效),故我们从main()方法中得到该变量还是原来的实参值;

引用传递的对象主要包括:自定义类,Array类型以及除String类型的引用类型(通过new创建的对象)

引用传递的时候,传递的是实参的引用地址,调用的方法里面的形参可以改变引用地址的值,返回的时候,引用地址的值已经发生改变,故我们从main()方法中得到该变量的值已经被形参影响。

从我的角度上来看,引用传递也是“值传递”,只不过此处的值为:“引用地址的值”。

原文地址:https://www.cnblogs.com/charging-for-ycp/p/6582364.html