java 总是按值传递的,但是传递一个String对象时,方法内对 String 对象的修改无效;而如果按数组传递,则方法内的修改可以生效。
网上查了不少解释,比较复杂,感觉死记着就行了。
举例:
public class PassingTest {
static void change(String str){
str="robin";
}
static void change(char[] str){
str[1]='g';
}
public static void main(String[] args){
String str="chen";
change(str);
System.out.println(str);
char[] str1={'c','h','e','n'};
change(str1);
System.out.println(str1);
}
}
输出:
chen
cgen