一、变量是否改了
1. 情形一 ,在主方法中向方法中传入两个此方法的局部变量String参数,此两个String 都各自在末尾加了一个字符,然后拼接两个String。最后在主函数输出S这俩tring。
主方法中的String 不变,只是传进去一个参数而已。
2. 情形二 ,在主方法中向方法中传入两个此方法的局部变量List参数,在函数中向list中加入数据,最后在主函数输出这个List。
如果此ArrayList 在主函数中实例化: 主函数中的ArrayList 会有值。
如果此ArrayList 在被调用函数中实例化: 主函数中的ArrayList为null
结论,若想更改list型的数据,可以把它传进去。 无论此方法是否有返回值。
3. 情形二 ,在主方法中向方法中传入两个成员变量参数,在函数中向list中加入数据,最后在主函数输出这个List。
此两成员变量值改变。
二、一个类的成员变量 ArrayList 类型的,可否绕过Set方法直接赋值。
1. 可以, 只需getNameList.add() 即可
2. 如何避免,暂不知道。
三、那所谓的String 是引用传递说的是什么?
好乱,可以说String 就是值传递。
String 作为参数的时候,只是被Clone了一份。String中存的是栈中String 内容地址,而此地址存的才是String的引用。在被调用方法中被改,并不改变原值。
而对其他“高级变量”来说,是给了栈中对象的引用,所以自然可以修改其内容
具体的可以参考。http://www.cnblogs.com/zeng-wei/p/3494336.html