Java 字符串赋值与引用详解:为什么 strTwo 仍然输出 'bird'?
代码示例:
public class E {
public static void main(String[] args) {
String strOne = 'bird';
String strTwo = strOne;
strOne = 'fly';
System.out.println(strTwo); // 输出 'bird'
}
}
解析:
在第 3 行,我们创建了一个字符串变量 strOne,并将它的值设置为 'bird'。
在第 4 行,我们将 strOne 赋值给 strTwo。 此时,strTwo 也指向 'bird',但它并没有复制 strOne 的内容。它们都指向同一个字符串对象。
在第 5 行,我们将 strOne 的值改为 'fly'。 这一操作改变了 strOne 指向的对象,但并没有影响 strTwo,因为 strTwo 仍然指向原来的 'bird' 对象。
因此,当我们输出 strTwo 的值时,得到的结果仍然是 'bird'。
结论:
在 Java 中,字符串赋值实际上是将引用赋值。 当你将一个字符串变量赋值给另一个变量时,实际上是将引用复制给了新变量,而不是复制字符串本身。因此,更改其中一个变量的值不会影响另一个变量的值。
原文地址: https://www.cveoy.top/t/topic/ntxD 著作权归作者所有。请勿转载和采集!