简单来说,"=="是针对基本数据类型和引用类型进行比较;
"equals()"仅仅针对引用类型(比如对象地址)进行比较。(前提是对应类下没有对该方法进行重写,可以查阅API文档证明)
StringBuffer b1 = new StringBuffer("abc");//StringBuffer类
StringBuffer b2 = new StringBuffer("abc");
String s1 = new String("abc");//创建字符串对象,不可改变;
String s2 = "abc";//用字面值常量定义s2,该字符串不可改变;
System.out.println(s1 == s2);//对象引用地址不一致
System.out.println(b1 == b2);//StringBuffer类对象的引用地址不一样;
System.out.println(b1.equals(b2));//StringBuffer类没有重写该方法,还是false;