Java,为什么说String为不可变字符串?

Stringa="name";a="age";System.out.print(a);打印结果为a=age,这不是变了吗?... String a ="name";
a = "age";
System.out.print(a);
打印结果为a=age,这不是变了吗?
展开
 我来答
xiaolincc26
2012-04-01 · TA获得超过170个赞
知道小有建树答主
回答量:146
采纳率:0%
帮助的人:76.2万
展开全部
你需要理解String中有一个pool(池),还有String a="name";其实是这样的:String a=new String(“name”);上网查查详细资料就能来理解了。
String:
是对象不是原始类型.
为不可变对象,一旦被创建,就不能修改它的值.
对于已经存在的String对象的修改都是重新创建一个新的对象,然后把新的值保存进去.
String 是final类,即不能被继承.

你应该是想要知道的是String、StringBuffer、StringBuilder之间的区别
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
七竹水木
2012-04-01 · TA获得超过280个赞
知道小有建树答主
回答量:206
采纳率:57%
帮助的人:156万
展开全部
那里说了String为不可变字符串啊
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
少碧520
2012-04-10
知道答主
回答量:17
采纳率:100%
帮助的人:7.9万
展开全部
可是你有没有想过,前面的a跟后面的a地址都不一样了,哪能说他有变呢?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lei901222
2012-04-01 · 超过19用户采纳过TA的回答
知道答主
回答量:109
采纳率:0%
帮助的人:39.5万
展开全部
是变了啊 因为你把下面的值覆盖了啊
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式