string是引用变量 String a="a"; String b=a; String b="b"; 那么a为什么还是"a",不是都指向同一个对象吗

2025-05-19 20:57:26
推荐回答(5个)
回答1:

第一步,红线所示

第二步,b=a,b也指向了"a"

第三步,b="b",改变了b的指向,和a并没有关系,a依旧指向自己的"a"

想要改变a的指向,只能用“a=”对a进行赋值。

回答2:

String a = "a";//定义了一个变量a,指向一个字符串常量"a"
String b = a; //定义了一个变量b,它也指向"a",此时变量a还是指向"a"
String b = "b";//此时将b变量指向了一个新的字符串"b",但a还指向"a"

回答3:

首先,你对String类型的变量是引用变量是对的。
String a="a"; String b=a;确实让b和a引用同一个对象。

但b="b";是让b引用了新的对象"b",并不是改变了原来的对象。

在这里"a","b"都是对象,你的操作只是让b指向了不同的对象,对a没有影响

PS:String b="b"这样可以吗?之前b不是声明了吗?

回答4:

既然你都说了是引用变量,那传递的时候只是传递引用,并没有改变本身的二进制内存地址,只要内存地址不变,a是永远都指向“a”的。

回答5:

a一直引用的是“a“

b先引用的是”a“,后来引用的是”b”