StringBuffer str1=new StringBuffer("hello1");
StringBuffer str2=new StringBuffer("hello1");
System.out.println(str1.equals(str2));
它会显示错误结果为什么?
答案 0 :(得分:2)
StringBuffer equals()
方法来检查内容。它使用默认的“浅等于”来比较它从java.lang.Object.
所以
StringBuffer str1=new StringBuffer("hello1");
StringBuffer str2=new StringBuffer("hello1");
System.out.println(str1.equals(str2));
比较参考,这就是您获得 false
的原因答案 1 :(得分:1)
equals
课程中没有覆盖StringBuffer
。所以它继承了Object
类的定义。从Java API我们知道它的行为:
类Object的equals方法实现最具辨别力 对象可能的等价关系;也就是说,对于任何非null 引用值x和y,当且仅当x时,此方法返回true 和y引用相同的对象(x == y的值为true)。
您有两个不同的对象,因此equals
在这种情况下会返回false
。