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

string是引用变量Stringa="a";Stringb=a;Stringb="b";那么a为什么还是"a",不是都指向同一个对象吗... string是引用变量 String a="a"; String b=a; String b="b"; 那么a为什么还是"a",不是都指向同一个对象吗 展开
 我来答
302652034_bai
2017-10-27 · TA获得超过4145个赞
知道大有可为答主
回答量:2206
采纳率:66%
帮助的人:1541万
展开全部

第一步,红线所示

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

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

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

区锟Rs
2012-10-06 · 超过31用户采纳过TA的回答
知道答主
回答量:71
采纳率:100%
帮助的人:75万
展开全部
String a = "a";//定义了一个变量a,指向一个字符串常量"a"
String b = a; //定义了一个变量b,它也指向"a",此时变量a还是指向"a"
String b = "b";//此时将b变量指向了一个新的字符串"b",但a还指向"a"
追问
就是说b指向发生改变,不是对象里的值发生改变
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
一人成0A
2012-10-06
知道答主
回答量:7
采纳率:0%
帮助的人:4.4万
展开全部
首先,你对String类型的变量是引用变量是对的。
String a="a"; String b=a;确实让b和a引用同一个对象。

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

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

PS:String b="b"这样可以吗?之前b不是声明了吗?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zhengkui2006
2012-10-06 · 超过25用户采纳过TA的回答
知道答主
回答量:86
采纳率:0%
帮助的人:75.9万
展开全部
既然你都说了是引用变量,那传递的时候只是传递引用,并没有改变本身的二进制内存地址,只要内存地址不变,a是永远都指向“a”的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友12ee0fd
2012-10-06 · TA获得超过4.7万个赞
知道大有可为答主
回答量:1.1万
采纳率:66%
帮助的人:2344万
展开全部
a一直引用的是“a“

b先引用的是”a“,后来引用的是”b”
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式