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对象。

  1. “好”它将进入 字符串池
  2. “早晨”也进入 字符串池
  3. 通过合并“ 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

回到顶部