public class TestString {
????public TestString() {
????}
????public static void main(String[] args) {
????????String s=new String("Hello");
????????modify(s);
????????System.out.println("s===="+s);
????}
????public static void modify(String s)
????{
????????s+="world";
??????}
}
為什么是輸出Hello,而不是Helloworld??
java里面會對 String ,int ,Integer 等基本類型,會用值進行傳遞,在modify 時會clone拷貝一副本在內存里面,但是打印出來的時候,還是按原來內容
其他Object類型,按照內存地址進行傳遞的,所以在modify 的時候會把值改掉,打印出來也會是“Hello world”