gpt4 book ai didi

java - 不可变字符串类?

转载 作者:行者123 更新时间:2023-12-01 08:15:35 25 4
gpt4 key购买 nike

如果我们有这些陈述:

String S1 = "AAA";
S1 = "aaa";

这意味着分配给特定属性的原始值没有改变。(因为字符串类是不可变的,并且 S1 是一个实习对象)。

现在...如果我们有以下语句:

String S1 = new String("AAA");
S1="aaa";

这意味着分配给字符串类中特定属性的原始值已更改。(因为字符串类是不可变的,并且 S1 不是内部对象)

我的理解对吗?

最佳答案

不,String 对象在任何情况下都是不可变的。当您调用 new String("foo") 时,这只会创建另一个包含传递内容的字符串。所以不要这样做。

编辑:
在第二种情况下,S1 未被保留,但这并不会取消其不变性。因此,String 赋值始终不会更改左侧对象,而只是重写引用。

关于java - 不可变字符串类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13630276/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com