问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

equals、hashCode、==

发布网友 发布时间:2023-08-05 10:34

我来回答

1个回答

热心网友 时间:2024-11-29 13:31

==   基本类型  比较的是值  ,   引用类型  比较的是地址值.

int a=127; int b=127;

System.out.println("inta==intb:" + (a== b));       返回的是  true

int a=128;  int  b=128;

System.out.println("inta==intb:" + (a== b));       返回的是  flase

-128~127内会进入缓存,超过就会new.

String a=new String("1");

String b=new String("1");

System.out.println("String a==String b:" + (a== b));    返回的是flase

String a="1";

String b="1";

System.out.println("String a==String b:" + (a== b));   返回值是true

Integer a= new Integer(12);  

int b=12;

System.out.println("inta==intb:" + (a== b));   返回值是true

即使是相同的值只要是不同new,的地址值就不同,除非他是同一个new出来比较.

基本类型和相同的包装类型,比较会自动拆箱变为基本类型所有比较的不是地址值.

这里S1==S2,是true ,S1==S3是false;

S1==S2是true因为,"a"+"b+"c"是字符串常量,常量优化机制,应该去常量池中创建"abc",但是当常量池中已经abc了,S2就不会再去创建常量,所有就相等.

S1==S3是false因为,在JDK1.6中所有的字符串用+连接,底层都是用stringBuilder或者StringBuffer拼接,然后toString.所有地址是不一致的.

equals  比较的就是地址值.

即String中equals方法判断相等的步骤是:

1.若A==B 即是同一个String对象 返回true

2.若对比对象是String类型则继续,否则返回false

3.判断A、B长度是否一样,不一样的话返回false

4。逐个字符比较,若有不相等字符,返回false

这里对equals重新需要注意五点:

1   自反性:对任意引用值X,x.equals(x)的返回值一定为true.

2   对称性:对于任何引用值x,y,当且仅当y.equals(x)返回值为true时,x.equals(y)的返回值一定为true;

3   传递性:如果x.equals(y)=true, y.equals(z)=true,则x.equals(z)=true

4   一致性:如果参与比较的对象没任何改变,则对象比较的结果也不应该有任何改变

5   非空性:任何非空的引用值X,x.equals(null)的返回值一定为false

如果a.equals(b),则一定有a.hashCode() 一定等于 b.hashCode()。 

如果!a.equals(b),则a.hashCode() 不一定等于 b.hashCode()。此时如果a.hashCode() 总是不等于 b.hashCode(),会提高hashtables的性能。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
考研可以查试卷的各题得分吗 如何看到自己的考研试卷 考研成绩可以查各题得分吗 原神机关棋谭双风双岩队伍怎么玩_机关棋谭双风双岩队伍推荐 原神双风阵容怎么搭配 原神魈双风阵容怎么搭配-魈双风阵容搭配推荐 Java有发展潜力还是C#有发展潜力 兴智联和电信什么关系 玫瑰花酱做法二 武汉兴智联科技服务有限公司怎么样 ...269e1e047df2f6456b75acb7这是一个wifi无线网密码,亲哈帮我... 有没有这一种小说情节,男女主青梅竹马,后来女主出国,接着女主回国后直接... 用100千克大豆可以榨出13千克豆油一吨大豆可以榨出多少吨豆油?_百度... 100千克大豆可以榨油13千克豆油,1吨大豆可以榨多少豆油 100千克大豆可以榨油13千克,1吨大豆可以榨油多少千克 用0.6吨大豆可以榨出0.12吨豆油,照这样计算,1吨大豆可以榨出多少... 用100千克大豆可以榨出13千克豆油。1吨大豆可以榨出多少吨豆油? 丝棉有静电么?它保暖吗? 你说一个人因为唱吧的好友要离开唱吧而选择离开唱吧.这说明了什么? 杨志平的个人语录 北京市第十九中学现任校长教什么学科 杨志平的个人情况 凉菜红罗卜是酸性碱性 ...越来越弱是什么原因导致的翡翠吊坠越来越没光怎么回事 为什么翡翠挂件变色 福田驭菱1.6L喝几个油 我想买个福田驭菱VQ2油气两用车BJ486EQV4发动机2.0排量,122马力最大... 15年的福田驭菱汽油发动机多大排量 驭菱vq2用的1.5l发动机哪出的 谁家卖无纺布制袋机的?我做水果周转筐内衬用成品是这样的! 上能电气业绩不好?上能电气股价便宜?上能电气跌几天了? 金基范出新电视剧了吗?叫什么名字? 刚申请的解绑手机号会封号吗 手机号在两个上来回的解绑绑定有什么风险吗 微信解除手机绑定会怎样,原还可以继续使用吗? 微信解除手机绑定会怎样,原还可以继续使用吗 你可以加我的微信,我的是。。。用英语怎么说。谢谢 ...听筒模式。就是手机拿起来的时候放耳边就自动切换 辽宁大学新生选课时怎么选的? 绝地求生光标如何设置 睡不着的作文 红外烟雾传感器和红外气体传感器原理一样吗 梦见把学校所有老师杀了 梦见杀了同学是什么意思 加强学前教育建设释放人力资源的意义 大1.5匹挂式定频空调和3匹立式变频空调制冷哪个更省电? 渭南市海泰金属材料有限公司怎么样? 陕西雷鑫钢材物资有限公司怎么样? 渭南市临渭区德顺金属材料机械有限责任公司怎么样? 渭南金典工贸有限公司怎么样?