==和equals的区别

==
操作符专门用来比较两个变量的值是否相等。也就是用于比较变量所对应的内存中所存储的值是否相同。要比较两个基本类型数据或两个引用变量是否相同,只能用==操作符。

equals
如果一个引用指向的数据是对象类型的,则涉及两块内存了,对象本身占一块(堆),引用或变量占一块(栈)变量对应的内存所存储的数值就是对象所占用的那块内存的首地址。对于指向对象类型的变量,如果要比较两个变量是否同时指向同一个对象,这时候就需要用==来操作了。equals用于比较两个独立的对象的内容是否相同。
比如:String a = new String("foo");
String b = new String("foo");
两条new 语句创建了两个对象,然后用a,b 这两个变量分别指向了
其中一个对象,这是两个不同的对象,它们的首地址是不同的,即a
和b 中存储的数值是不相同的,所以,表达式a==b 将返回false,
而这两个对象中的内容是相同的,所以,表达式a.equals(b)将返回
true。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 32,368评论 18 399
  • 从三月份找实习到现在,面了一些公司,挂了不少,但最终还是拿到小米、百度、阿里、京东、新浪、CVTE、乐视家的研发岗...
    时芥蓝阅读 42,486评论 11 349
  • 如果你没有深度分析过的话,那么这可能是一个非常灵异的事件。 灵异事件一: 灵异事件二: 灵异事件三: 灵异事件四:...
    TinyDolphin阅读 3,280评论 0 3
  • 这是我第三次提分手了,我不知道生命里到底能不能留下这个人!于是我在分手后的两天里反复的回忆,我跟他之间的细节,这一...
    郭宗艳说阅读 3,345评论 0 0
  • 因老师打电话告状:政治默写只有一张纸,没有本子!水杯洒了,没有及时处理,老师认为素质差!车屉垃圾多,影响班级荣誉…...
    刘小兔子阅读 1,738评论 0 0

友情链接更多精彩内容