public static void main(String[] args) {
StringBuffer sb=new StringBuffer("a");
StringBuffer sb1=new StringBuffer("a");
String str=new String("a");
String str1=new String("a");
System.out.println(sb.equals(sb1));
System.out.println(str.equals(str1));
}
第一个返回 false
第二个返回true
因为String的equals方法是比较值,而Object比较的是首地址。SttringBuffer使用Object的默认equals,没有重新写过equals,古比较两个首地址是否一样。String里默认比较的就是两个值是否相等,不同于Object默认的equals.