ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

Java基础之——equals和==的区别和联系

Java基础之——equals和==的区别和联系 关于作者我是星河一个深耕自己不内耗的长期主义者。一个对技术充满激情对工作对生活充满热情的热血青年。坚信真正能让大家看懂的技术文章才是好文章坚持用更通俗易懂的大白话写技术博文并会持续更新。我是星河愿我们既能凝望脚下的路也能心怀璀璨的远方。和之前一样今天还是用通俗易懂的大白话来写点我自己的理解和总结。首先千万别觉得很难之前你觉得这些知识难是因为从来没有人用大白话真正的给你讲懂过看完我写的之后就觉得一点都不难了。一点都不难经常看我文章的应该都能感觉到我都是循序渐进来写的。我会把我是怎么从不理解不明白到最后是怎么搞明白的这个脉络尽可能的用通俗易懂的大白话记录下来。我相信我自己是这么理解过来的那大多数人按照我的脉络来看肯定也都能看明白。希望能尽自己的一点绵薄之力来帮更多人理解这些和Java相关的枯燥难懂的知识把Java发扬光 大。今天来讲一个Java里比较基础也比较重要的知识点——equals和的区别和联系讲equals和的区别和联系之前需要知道Java中的数据类型分为基本数据类型和引用数据类型1、基本数据类型基本数据类型也称原始数据类型Java中一共有以下8中基本数据类型byte、short、int、long、float、double、boolean、char这些基本数据类型之间的比较只能使用双等号来比较比较的永远是它们的值2、引用数据类型而引用数据类型可以使用比较也可以使用equals方法比较1引用数据类型用 进行比较当引用数据类型用进行比较比较的是它们在堆内存中的地址值。所以除非是同一个new出来的对象它们使用 比较后的结果为true否则比较的结果都为false2引用数据类型用equals方法进行比较Java中所有的类都是继承于Object这个基类的在Object中有一个equals的方法Object里这个equals方法默认比较的是对象在堆内存中的地址值。所以默认情况你不重写类里的equals方法时使用equals进行比较的就是对象在堆里的地址值。但在一些常见的类库中这个equals方法都被重写过了比如String、Integer、Date等等在这些类中equals有其自身实现的比较逻辑而不再是比较对象在堆内存中的地址了。引用数据类型之间使用equals进行比较在没有重写equals方法的情况下使用的就是Object里默认的equals方法比较的是对象在堆内存中的地址值因为Object里的equals方法它默认也是用的 来进行比较的所以此时使用equals比较后的结果跟 的结果相同。但是你重写了equals方法的话那就不使用Object里equals方法的默认行为了就可以按照你自定义的比较规则来比较了。简单的大白话就是引用数据类型你如果不重写equals方法它默认是用比较的内存地址值此时equals和的效果一样。如果你重写了equals方法那边就按照你的规则去比较而不是默认的用去比较内存地址值纯手敲 原创不易如果这篇文章对你有所启发或帮助希望可以花费你一秒钟的时间点亮【赞和收藏】如果能点【分享】给更多同行的人那就更好了。你的每一个互动都是我持续创作的最大动力。感恩遇见感谢陪伴。
返回列表