直接上代码
public static void main(String[] args) {
String a = "xxxx";
StringBuffer buffer = new StringBuffer("xxxx");
System.out.println(buffer.equals(a));
}
输出结果:false
进入object的equals方法,发现两个对象的value的char数组长度不同。
原因是new StirngBuffer的时候会自动加16个字符串的长度
public StringBuffer(String str) {
super(str.length() + 16);
append(str);
}