栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java笔记之-- equals,==,instanceof的区别 以及对hashcode的理解

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java笔记之-- equals,==,instanceof的区别 以及对hashcode的理解

一.
equals:对于字符串来说,equals比较的是俩者的内容是否相同,对于其他的引用来说,equals比较的是俩者是否为同一对象(即地址是否相等) 再提一点:java里面的string有共享池这一概念,即String xx = “”(或者String xx = “xx” + “xx”);时的对象会放到同一个共享池里面,当下一个String xx = “str”时,若共享池里含有与str相同内容的对象时,那么他们实则为同一对象(也就是把共享池的对象拿出来给新来的);
但是String xx = new String();即new出来的对象都会放在堆内存里,是一个全新的对象,所以不管他们的内容是不是相等,他们都不是同一个对象,也就是他们的内存地址一定不相等。 二.
“==”:判断俩者的对象是否相等(即地址是否相等) 三.
instanceof:判断俩者是否为同一类 四.
hashcode:哈希值是按照某个原则来计算的。
所以内容相等的(即equals返回true,或者==的)hashcode值一定相等 当内容不一样时hashcode可能相等也可能不相等,比如:当出现哈希冲突的时候(也就是当内容不一样但是计算出来的hashcode一样的时候,数据结构里面会提到)
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/685800.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号