在java中只有值传递,没有地址传递。
public static void change(String s){
s="ee";
或s=new String("ff");
}
public static void main(String[] args){
String s1 = "aa";
system.out.println(s1);
change(s1);
system.our.println(s1);
}
输出的结果为 aa aa是不是很意外。
在java中函数中传递的参数都是值传递,传递的是s1的一个副本,即s在内存中重新申请了一个内存,用来存放s1中的值。因此是值传递。
此时,s和s1都指向aa这个字符串。当s重新指向字符串ee时,对s1没有任何影响,并且s重新指向一个字符串没有任何意义。即s不能再操作aa这个字符串了。