人为刀俎,我为妖孽

导航

【通俗易懂】关于equals和”==“

”==“是比较的内存地址,无论是数据类型还是引用类型的,都是指向存放的处,也就是java中存放他们的”库房“地址,

”==“比较的就是它在哪个位置,占的位置是否一样?

而equals比较的是值, 基本数据类型不能进行equals的比较,只有它们的包装类可以进行equals比较,比较的是它是什么?

上图,基本数据类型   名称和地址都是同出一处    引用数据类型指向从方法区返回的内存地址

”==“比较的是方法区的占位是否是一处, equals比较的是方法区中的内容是否是一样的值(包含特殊情况!)

特殊情况!

像String、Integer等类对equals进行了重写,但是没有对equals进行重写的类(比如我们自己写的类)就只能从Object类中继承equals方法,其equals方法与==就也是等效的,除非我们在此类中重写equals。详情百度不深步研究

文章因个人感悟,如有问题,请欢迎随意吐槽,来者不拒,贬损的更加热烈欢迎~

posted on 2019-06-14 04:54  人为刀俎,我为妖孽  阅读(117)  评论(0)    收藏  举报