前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >==和equals的区别

==和equals的区别

作者头像
用户2141593
发布2019-02-20 10:51:11
4360
发布2019-02-20 10:51:11
举报
文章被收录于专栏:Java进阶

这个问题看了许多人的回答,但感觉都不是很满意;

基本数据类型做比较的时候,应该使用==;

引用类型做比较的时候两个都可以; 

==比较的是内存地址,equals方法在object里源代码也是用==来比较,比较的也是内存地址;

但有特殊的例子,比如在string中,==号比较的是内存地址,但是equals比较的是值,因为string这个类比较特殊,JDK帮我们重写了string的equals方法,所以在string里equals比较的是值。有的时候也需要我们重写equals方法,因为在它是object类的一个方法,我们需要比较对象的时候最好是重写该方法,比如我们自定义的类做HashMap的Key时,我们经常需要重写equals方法,并且用equals方法的返回结果是布尔类型的,可以直接用来做判断,但要注意的是用equals方法来比较对象的时候,第一个对象一定得检查是不是存在了,不然会出现空指针异常;

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2016年08月19日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档