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

2024-11-27 08:41:59
推荐回答(2个)
回答1:

  java.lang.String是不可变的,在你的例子中想一想s = "HTML";这一句在做什么。是生成一个"HTML"的对象再让s指向这个对象。而原来的String对象"Java"并没有改变。只是s没有指向他了,但是他还是在常量池中,直到被回收。

回答2:

你这么做是直接把"Java"和"HTML"的地址引用赋值给了字符串变量s
补充:StringBuilder(字符串构造器)和StringBuffer(字符缓冲区)是用于字符串在不断地添加/修改,效率要高于String(如果使用String,当它的值改变时,要重新为它的变量分配内存,效率低于StringBuilder(字符串构造器)和StringBuffer(字符缓冲区))
>>字符串在不断地添加/修改:StringBuilder(效率最高/不安全)>StringBuffer(效率略低/安全)