==和equals的区别

/**
         * ==:基本类型比较的是值,引用类型比较的是引用是否相等
         * 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)
         */

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值