1.==比较基本数据类型
基本型和基本型封装型进行“==”运算符的比较,基本型封装型将会自动拆箱变为基本型后再进行比较。
比如Integer 会拆成int;
两个Integer类型进行“==”比较,如果其值在-128至127,那么返回true,否则返回false,
这跟Integer.valueOf()的缓冲对象有关。
Integer a = 1234;
Integer b = 1234;
boolean a1 = a.equals(b); ---- true
boolean b1 = a == b; ---- false(其实时比较对象)
2.equals比较基本数据类型的时候
两个基本型的封装型进行equals()比较,首先equals()会比较类型,如果类型相同,则继续
比较值,如果值也相同,返回true。
3.==比较引用对象时
==用于包装类(引用类)比较的是对象地址
String a = new String("1234a");
String b = new String("1234a");
boolean a1 = a.equals(b); ---- true
boolean b1 = a == b; ---- false
4.equals比较引用对象时
分重写和不重写
string重写的equals方法,所以比较的是值
stringBuilder没重写,所以比较的是引用对象的地址
StringBuilder a = new StringBuilder("1234a");
StringBuilder b = new StringBuilder("1234a");
boolean a1 = a.equals(b); ---- false
boolean b1 = a == b; ---- false