一、前言
1、java八大基础数据类型:byte、short、int、long、float、double、boolean、char
2、java八大包装类:Byte、Short、Integer、Long、Float、Double、Boolean、Character
3、不可变类:对象实例化后不可改变成员变量值的类;
java自带不可变类:String、八大包装类
二、基础数据类型间判断相等
1、byte、short、int、long、char:彼此间用==、!=比较
例:int int1 = 48; int int2 = 48; byte byte1 = 48; char char1 = '0'; // ASCII码值为48
int1 == int2、int1 == byte1、int1 == char1均返回true
2、float、double不能用!=、==来判断判断,但是可以用>、>=、<、<=来比较大小
3、boolean不存在判断相等的场景,没有探讨的必要
三、基础数据类型与包装类对象间判断相等
用==判断(注:这里指的基础数据类型仅包括byte、short、int、long、char)
例:byte byte1 = 48; Integer integer = new Integer(48);
byte1 == integer返回true
四、不可变类对象间判断相等
调用equals方法
注:包装类的equals方法通过观察代码可知会优先判断类型是否匹配,还是用第三点的样例:
byte byte1 = 48; Integer integer = 48;
integer.equals(byte1); 返回false
五、StringBuffer、StringBuilder判断值相等
StringBuffer、StringBuilder并未重写equals方法,需调用toString()方法利用String的equals方法判断是否相等。
参考文章列表: