== 和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 引用类型

  1. 如果引用类型是可兼容的包装类型,则会触发自动拆箱,然后比较数值
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
  1. 否则,会报错

equals()

首先它是一个方法

1.Object类中定义的一个方法,默认是比较引用(即是否指向同一个对象)

2.如果需要按其他逻辑规则进行比较,则需重写该方法

posted @ 2021-01-05 15:36  墨羽留香  阅读(89)  评论(0)    收藏  举报