==与equls的比较
==与equls的比较
苏泽==
==比较的是对象的引用地址(内存地址是否相同)
但是 int 类型比较的时候比较的是 值 基本数据类型比较。
equals
equals一般重写的话都是比较对象的内容 即使引用地址不相同,但是内容相同任然返回ture;
但是如果不重写话,则和==相同
如图:
还要一个概念Objects.equals这是java的工具类
很简单,如果你的类没有重写的话,就相当于 == 比较,如果重写了比较内容,则equals方法会比较内容即可。
建议进行比较的时候,使用Objects.equals()这个工具类。
总结
如果进行比较的时候,要确定是否是比较对象的内容还是地址完全相同,如果地址相同则说明内容和地址都会相同,如果只是比较内容,建议使用equals方法来进行比较。
关于int类型和Integer类型比较
int Integer比较
integer则回拆箱来进行比较。
== 比较的还是int类型的方法,比较的是值。无论是否超过-128,127;
== 基本类型比较的都是值,无论引用地址是否相同
基本类型八个:int byte char float double boolean short long
内存地址相同 则这俩个引用指向的是同一个对象的实例,因此内容完全相同,对象也是同一个对象。
new 出的对象 jvm都会分配一个新的内存quy,内存地址总会不相同
评论
匿名评论隐私政策





