java中的String对象现在是可以改变的了吗?

以前学习java的时候一直在讲Stringisimmutable,如果要可改变的字符串需要使用StringBuffer或者StringBuilder。但今天无意发现Str... 以前学习java的时候一直在讲String is immutable,如果要可改变的字符串需要使用 StringBuffer 或者 StringBuilder。但今天无意发现String对象的内容是可以改变的,请问这是什么原因?还是java8的新特性吗? 展开
 我来答
匿名用户
2015-10-02
展开全部
  java.lang.String是不可变的,在你的例子中想一想s = "HTML";这一句在做什么。是生成一个"HTML"的对象再让s指向这个对象。而原来的String对象"Java"并没有改变。只是s没有指向他了,但是他还是在常量池中,直到被回收。
匿名用户
2015-10-02
展开全部
你这么做是直接把"Java"和"HTML"的地址引用赋值给了字符串变量s
补充:StringBuilder(字符串构造器)和StringBuffer(字符缓冲区)是用于字符串在不断地添加/修改,效率要高于String(如果使用String,当它的值改变时,要重新为它的变量分配内存,效率低于StringBuilder(字符串构造器)和StringBuffer(字符缓冲区))
>>字符串在不断地添加/修改:StringBuilder(效率最高/不安全)>StringBuffer(效率略低/安全)
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式