国内前十网站建设公司,深圳最穷的三个区,五站合一网站建设,最新国际新闻热点事件深入理解 和 equals 的本质区别简介区别#xff1a;图解#xff1a;注意点#xff1a;源码分析#xff1a;总结分享一波:程序员赚外快-必看的巅峰干货简介
初学者常常被 “和‘equals ’所折磨#xff0c;为什么#xff0c;因为他们的大概意思相同#xff0c;都是…
深入理解 和 equals 的本质区别简介区别图解注意点源码分析总结分享一波:程序员赚外快-必看的巅峰干货简介
初学者常常被 “和‘equals ’所折磨为什么因为他们的大概意思相同都是比较两个对象是否相等而又不搞不清他们的具体比较两个对象相等的原理是什么所以经常搞混淆接下来我们就去仔细的剖析他们真正理解什么时候用” 什么时候用equals 先统一看一下他们两个的区别知道区别后再仔细研究他们的原理
区别
它存在两个情况 1.当他比较两个基本类型时判断的时两个基本类型的类型和值是否相同 2.当他比较两个引用类型是判断的时两个引用类型的类型和地址是否相同
图解
equels最基本的equels方法其实就是 也就是说最基本的equels也存在两个情况 1.当他比较两个基本类型时判断的时两个基本类型的类型和值是否相同 2.当他比较两个引用类型是判断的时两个引用类型的类型和地址是否相同 也就是说最基本的equels方法和 完全一样
注意点
请看清楚我这里说的最基本的equels方法什么是最基本的equels方法在这里我们要知道一个知识点equels方法是Object类的方法我们再代码中写的所有Class类都继承了Object的equels方法所以我称Object类的equels方法是最基本的equels方法
源码分析
我们再来看一下Object类的equels方法的源码 这下明白了吧Object类的equels方法是直接点用了‘ ’所以一开始我说最基本的equels方法和完全一样 那我们知道继承的一大特点就是实现了java语言的多样性而方法重写则是java语言多样性的实现原理之一。问题的重要点就在这里继承Object类的子类对equels的重写导致了equels和 的不同。具体哪里不同这就要看怎么重写了。 给大家看一下一个重写了的比如String看图 String的重写equals方法流程是这样的 第一步判断引用地址是否相等引用地址相等说明他们是同一个对象说明值肯定相同返回true 第二部判断对象类型是否相同类型不同直接返回false 第三步循环两个对象的字符一一对比是否相同都相同说明值相同返回true 所以String重写的equals方法的总目的就是判断两个对象的值是否相同。
总结
所以总结下来就是说和我们日常用的equals方法哪里不一样我们要去看他们怎么重写的equals方法看完之后才能知道equals具体是怎么比较的。
分享一波:程序员赚外快-必看的巅峰干货