当前位置: 首页 > 知识库问答 >
问题:

既然可以更改字符串,怎么能说它是不可变的呢?[重复]

轩辕华辉
2023-03-14

既然字符串是不可变的,我们如何将字符串更改为示例

String s1="Hello";
  String s2="Manas";

现在我正在做

s1=s1+s3;

它将打印“你好玛纳斯”。所以字符串s1会改变。

那么,你怎么能说字符串是不可变的呢?

共有1个答案

孟茂
2023-03-14

您不是在更改"Hello"的内容,而是更改变量s1的值以完全引用不同的字符串对象。

不变性与更改变量的值无关——如果您想防止这种情况发生,可以将有问题的变量设为最终变量。

 类似资料:
  • 发生了严重的错误。 我有 我需要准备要传递给Spring jdbcTemplate的对象数组。然而,由于某些原因,ArrayList中的元素被视为字符串,因此在执行jdbcTemplate时会中断,抱怨它无法从字符串转换为int。然后我尝试在循环中转换,看看这是否有帮助:-\显然,我不能做Integer。parseInt作为IDE正确地将其视为整数。每当我将整数a=Activities分配给Del

  • 问题内容: 我读过在Java中不能更改String类型的对象。但是int和char变量可以。为什么?你可以给我一个例子吗? 谢谢。(我是较新的-_-) 问题答案: 正如bzabhi所说,字符串在Java中是不可变的。这意味着字符串对象将永远不会改变。这并不意味着您不能更改字符串变量,只是不能更改字符串的基础内存表示形式。例如: 执行完这些行后,str将指向内存中的新字符串。原始的“ Hello”字

  • 问题内容: 关于id类型对象str(在python 2.7中)的某些事情使我感到困惑。该str类型是不可变的,因此我希望一旦创建它,​​它将始终具有相同的id。我相信我说的话不太好,所以我将发布一个输入和输出序列的示例。 因此与此同时,它一直在变化。但是,在有一个指向该字符串的变量之后,情况发生了变化: 因此,一旦变量保存了该值,它似乎就冻结了。确实,在和之后o, 的输出再次更改。 这是不相同的行

  • 我是Android Studio的新手。不久前我提到“AppCompat. NoActionBar”主题非常适合我的应用程序,但很快我意识到我想更改它的原色灰色。我已经为此设置了一些颜色资源。我的问题是如何重新定义AppCompat原色,这是否是一个好的解决方案(甚至可能)?目前,我只想将我的应用程序背景颜色更改为我的colors.xml文件中已经有的“bg_lighter_gray”。我所知道的

  • 为什么Java字符串被认为是不可变的?我可以说之后将name值更改为

  • 据我所知, 可变字符串可以更改,不可变字符串不能更改。 这里我想这样改变字符串的值, 另一种方法是, 在这两种情况下,我都试图改变str的值。谁能告诉我,这两种情况的区别是什么,让我清楚地了解可变和不可变对象。