== 和equals
==
首先它是一个比较运算符
1.基本数据类型 vs 基本数据类型,比较的是数值
int a = 1;
int b = 1;
double c = 1.0;
System.out.println(a == b);// true
System.out.println(a == c);// true
2.引用类型 vs 引用类型,比较的是引用(即是否指向同一个对象)
3.基本数据类型 vs 引用类型
- 如果引用类型是可兼容的包装类型,则会触发自动拆箱,然后比较数值
int a = 1; Integer b = 1; double c = 1.0; Double d = 1.0; System.out.println(a == b);// true System.out.println(a == c);// true System.out.println(a == d);// true
- 否则,会报错
equals()
首先它是一个方法
1.Object类中定义的一个方法,默认是比较引用(即是否指向同一个对象)
2.如果需要按其他逻辑规则进行比较,则需重写该方法

浙公网安备 33010602011771号