1、==
正常情况:
基本类型和基本类型 比较值
基本类型和基本类型的封装类型 比较值
byte a=18;
short b=18;
int c=18;
long d=18L;
float e=18.0f;
double f=18.0;
Float ef = new Float(18.0);
Double ff = new Double(18.0);
System.out.println(a==b);//true
System.out.println(b==c);//true
System.out.println(c==d);//true
System.out.println(d==e);//true
System.out.println(e==f);//true
System.out.println(ff==f);//true
System.out.println(ef==e);//true
如果是引用类型和引用类型 则比较内存
另外情况:
基本类型的封装类型 和 基本类型的封装类型 比较
涉及拆箱和装箱
请看Java中的装箱和拆箱—这一篇全了解_java装箱和拆箱-CSDN博客
2、equals
重写equal方法则比较值(基本类型的封装类型都重写了equals方法)
不重写则比较内存
注:euals不能比较基本类型