gpt4 book ai didi

java - 当字符串不可变时,为什么 System.out.println(s.concat ("some string"));返回改变后的值

转载 作者:行者123 更新时间:2023-12-02 05:52:34 25 4
gpt4 key购买 nike

我编写了以下代码:

public static void main(String[] args) {
// TODO Auto-generated method stub
String s = new String("abc");
System.out.println(s.concat("def"));
}

它返回给我输出:“abcdef”

如果字符串是不可变的,这怎么可能。

最佳答案

s.concat("def") 返回一个新的 String 实例。 s 引用的 String 实例保持不变。

您可以添加另一个 println 语句来亲自查看:

public static void main(String[] args) {
String s = new String("abc");
System.out.println(s.concat("def"));
System.out.println(s);
}

您还可以在 concat 的 Javadoc 中看到这一点:

If the length of the argument string is 0, then this String object is returned. Otherwise, a String object is returned that represents a character sequence that is the concatenation of the character sequence represented by this String object and the character sequence represented by the argument string.

仅当您向此方法传递空 String 时,才会返回原始 String

关于java - 当字符串不可变时,为什么 System.out.println(s.concat ("some string"));返回改变后的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39845301/

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