我知道java里面参数传递是值传递,这点不用给我解释了。但是:
import java.util.*;
public class Test {
public static void change(String s){
s="2";
}
public static void main(String[] args) throws Exception{
String s="1";
change(s);
System.out.println(s);
s="2";
System.out.println(s);
}
}
为什么两次s的值不一样。
希望能从底层原理方面讲的我心服口服,不要讲一些模棱两可的空概念。
你说String是final的,那么为什么在main里面就可以改变。