目录
在初学Java时,==和equals()方法很容易搞混,有的时候不理解而使用从而导致严重的错误。
==:
1.基本类型,比较值是否相等
2.引用类型,比较引用的地址
比较值
int aa1 = 10;
int bb1 = 10;
System.out.println(aa1 == bb1);
double aa2 = 10.5;
double bb2 = 10.1;
System.out.println(aa2 == bb2);
char aa3 = 's';
char bb3 = 'w';
System.out.println(aa3 == bb3);
boolean aa4 = true;
boolean bb4 = false;
System.out.println(aa4 == bb4);
这个没什么说的,就是比较值是不是相等。
比较引用
int[] arr1 = new int[5];
int[] arr2 = new int[5];
System.out.println(arr1 == arr2);
arr1的地址是0x112233(假设),arr2的地址是0x224466(假设),地址当然不同,所以输出结果为false
equals():
本来的面貌
在没有重写equlas()方法时,默认的equals等价==。返回什么结果的具体规则根据某个类如何重写equals()方法来定。
看一下常用的String类如何重写的equals()方法