第一步,红线所示
第二步,b=a,b也指向了"a"
第三步,b="b",改变了b的指向,和a并没有关系,a依旧指向自己的"a"
想要改变a的指向,只能用“a=”对a进行赋值。
String a = "a";//定义了一个变量a,指向一个字符串常量"a"
String b = a; //定义了一个变量b,它也指向"a",此时变量a还是指向"a"
String b = "b";//此时将b变量指向了一个新的字符串"b",但a还指向"a"
首先,你对String类型的变量是引用变量是对的。
String a="a"; String b=a;确实让b和a引用同一个对象。
但b="b";是让b引用了新的对象"b",并不是改变了原来的对象。
在这里"a","b"都是对象,你的操作只是让b指向了不同的对象,对a没有影响
PS:String b="b"这样可以吗?之前b不是声明了吗?
既然你都说了是引用变量,那传递的时候只是传递引用,并没有改变本身的二进制内存地址,只要内存地址不变,a是永远都指向“a”的。
a一直引用的是“a“
b先引用的是”a“,后来引用的是”b”