gpt4 book ai didi

Java 字符串与字符串缓冲区

转载 作者:行者123 更新时间:2023-12-01 17:11:34 26 4
gpt4 key购买 nike

我有以下 Java 代码行

{        
String str1=new String("Vivek");
String str2=new String("Vivek");
StringBuffer str3=new StringBuffer("Vivek");
StringBuffer str4=new StringBuffer("Vivek");
System.out.println(str1.equals(str2));
System.out.println(str3.equals(str4));
}

现在我得到的输出如下

    True
False

我不明白为什么它对于 String 对象打印 true 而对于 StringBuffer 对象打印 false? 它与对象的可变性有关吗?

最佳答案

StringBuffer 不会覆盖 equals,因此调用父类(super class) Object 的方法。如果您想比较内容,请使用 toString 方法

System.out.println(str3.toString().equals(str4.toString()));

注意,自 Java 1.5 起,StringBuffer 已被 StringBuilder 取代,作为非线程替代方案

关于Java 字符串与字符串缓冲区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23544484/

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