/**
* ==:基本类型比较的是值,引用类型比较的是引用是否相等
* equals,本质上是==,只不过String和Integer,重写了方法,变成值比较
* 这里s和a的引用是一样的,String类型,equals比较的值也是一样的
*/
String s = "abc";
String a = "abc";
System.out.println(s==a);//true
System.out.println(s.equals(a));//true
/**
* 引用类型Cat,
*/
Cat cat1 = new Cat("cat1");
Cat cat2 = new Cat("cat2");
System.out.println(cat1.equals(cat2));//false
/**
* hasCode()相等,equals()不一定相等
* str1:1179395 | str2:1179395
* 在Map集合里经常用hashCode()来判断是否有重复值,如果有两个hashCode()相等,那么就再比较equals()方法,看是否值相等
*/
String str1 = "通话";
String str2 = "重地";
System. out. println(String. format("str1:%d | str2:%d", str1. hashCode(),str2. hashCode()));
System. out. println(str1. equals(str2));//false
/**
* Java容器分为Collection和Map两大类
* Collection分为List(ArrayList/LinkedSet/Vector/Stack)和Set(HashSet/LinkedSet/TreeSet)
* Map(HashMap/TreeMap/hashTable/ConCurrentHashMap)
*/
==和equals的区别
最新推荐文章于 2024-08-31 20:18:34 发布