我不明白为什么字符串不能像对象一样工作,即当你改变它时,它所分配的变量也会随之改变。
我曾尝试过创建一个字符串数组,然后将其中一个元素的引用分配给一个变量(我说引用是因为据我所知Java是按值传递,而一个内存引用就是那个“值”)。但是当我改变了字符串元素时,变量并没有反映出这种变化。
也许根据我所读到的,赋值操作符对于字符串并不像这样起作用。
我曾尝试过创建一个字符串数组,然后将其中一个元素的引用分配给一个变量(我说引用是因为据我所知Java是按值传递,而一个内存引用就是那个“值”)。但是当我改变了字符串元素时,变量并没有反映出这种变化。
String[] arr={"abc","def"};
String s=arr[1];
arr[1]+="123r";
for (String i:arr) {System.out.print(i);}
System.out.println(); // prints "abcdef123r"
System.out.println(s); //prints "def"
也许根据我所读到的,赋值操作符对于字符串并不像这样起作用。
arr[1] +="123r"
并不会“更改对象”。它等同于arr[1] = arr[1] + "123r"
,即创建一个新的字符串对象,并将该新的字符串对象存储在数组中,索引为1。 - JB Nizet