刚开始学习Java,看到字符串和数组都是引用类型。 我不明白以下问题:
String a = "a1";
String b = "a2";
a=b;
a = "rrr";
System.out.println(a);
System.out.println(b);
int[] arr1 = {1,2,3};
int[] arr2 = arr1;
arr2[0]= 19;
System.out.println(arr1[0]);
当我打印它时,我得到:"rrr""a2"10
使用数组时 - 我知道它们都指向同一个对象,因此如果我更改单元格 - 我会看到 arr1 和 arr2 处的差异。
关于“字符串” - 根据我的理解,当我这样做时:a = b它不应该是:“让a
指向与b
指向的同一对象“- 意思是如果我改变a,它们也需要改变?
谢谢!!
最佳答案
在数组的情况下,您实际上是在修改数组,因此如果一个引用发生更改,另一个引用也会发生更改。
在字符串情况下,您不修改对象,您只是将不同对象分配给该引用。
正如您所指出的: a=b
表示“让 a 指向与 b 指向的同一对象”。按照同样的思路,a="rrr"
的意思是“让 a 指向文字“rrr””,与 b 无关。
关于Java - 字符串和数组引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25940360/