java中的可变和不可变字符串有什么区别
据我所知,
可变字符串可以更改,而不变字符串则不能更改。
在这里我想这样改变String的值,
String str="Good";str=str+" Morning";
而另一种方式是
StringBuffer str= new StringBuffer("Good");str.append(" Morning");
在这两种情况下,我都试图更改的值str
。谁能告诉我,这两种情况有什么区别,让我清楚地了解可变和不可变的对象。
回答:
回答:
String str = "Good";str = str + " Morning";
在上面的代码中,您将创建3个String
对象。
- “好”它将进入 字符串池 。
- “早晨”也进入 字符串池 。
- 通过合并“ Good”和“ Morning”创建的“ Good Morning”。这个家伙在 堆上 。
字符串 。没有 类的东西。str
仅仅是一个 参考 ,最终指向“早安”。您实际上
在处理1
对象。您有3
不同的String
对象。
回答:
StringBuffer str = new StringBuffer("Good"); str.append(" Morning");
StringBuffer
包含字符数组。这是 不
一样的String
。上面的代码将字符添加到现有数组。实际上,StringBuffer
是可变的,其String
表示不是。
以上是 java中的可变和不可变字符串有什么区别 的全部内容, 来源链接: utcz.com/qa/400164.html