原由:项目中一处方法的参数String须要在调用处使用,还须要在方法内使用,而且方法此时须要返回的值有多个且包括这个参数String(如今是使用封装一个类,包含全部返回值的类)
在java中,依然是存在引用传递和值传递的:java
- 引用传递:参数进入方法后,方法在参数上作的修改,可使得变量原型同样随之变化,由于是参数拷贝了变量的地址引用,方法经过地址引用来修改
- 值传递:参数进入方法后,方法在参数上作的修改,不会使得原型改变,由于这里的参数是原型的一个拷贝,这里改变的是一个备份,而非数据自己
在java中,基本数据类型是值传递,而非基本类型是引用传递,可是,String由于是“不可变”的对象,致使了它的特殊性。
String对象在发生改变的时候,是产生一个新的对象,而后将指针指向新的对象。


原型和参数此时指向的是不一样的对象,因此String不能经过参数引用传递来做值的改变
如如有错,烦请指出