基本型和基本型封装型进行“==”运算符的比较,封装型会自动拆箱为基本型再进行比较。
两个Integer类型进行“==”比较,如果其值再-128 - 127之间,返回true,否则返回false。
两个基本型的封装型进行比较,首先equals() 会比较类型,类型相同,则继续比较值,如果都相同,返回true。
基本型封装型调用equals(),但是参数是基本类型,会先自动装箱,基本型转换为封装类型,在比较。
public static void main(String[] args) {
int a = 128;
Integer b = 128, c = 128, d = 36, e = 36;
System.out.println(a==b);//true
//System.out.println(a.equals(b));编译出错,基本型不能调用equals()
System.out.println(b.equals(128.0));//false 128.0是浮点型
System.out.println(b == c);//false 128 > 127
System.out.println(d == e);//true
}