8、 equals与==的区别

藏宝库编辑 2024-9-27 03:57:04 59 0 来自 中国
equals与==的区别

== :
    == 比力的是变量(栈)内存中存放的对象的(堆)内存所在,用来判定两个对象的所在是否雷同,便是否是指雷同一个对象。比力的是真正意义上的指针使用。
1、比力的是使用符两端的使用数是否是同一个对象。 
2、双方的使用数必须是同一范例的(可以是父子类之间)才气编译通过。 
3、比力的是所在,假如是详细的阿拉伯数字的比力,值相当则为true,如: int a=10 与 long b=10L 与 double c=10.0都是雷同的(为true),由于他们都指向所在为10的堆。


equals:
        equals用来比力的是两个对象的内容是否相当,由于全部的类都是继续自java.lang.Object类的,以是实用于全部对象,假如没有对该方法举行覆盖的话,调用的仍旧是Object类中的方法,而Object中的equals方法返回的却是==的判定。


总结:
        全部比力是否相当时,都是用equals 而且在对常量相比力时,把常量写在前面,由于使用object的equals方法, object大概为null ,则报空指针.
        在阿里的代码规范中只使用equals ,阿里插件默认会辨认,并可以快速修改,保举安装阿里插件来排查老代码使用“==”,替换成equals.
您需要登录后才可以回帖 登录 | 立即注册

Powered by CangBaoKu v1.0 小黑屋藏宝库It社区( 冀ICP备14008649号 )

GMT+8, 2024-11-24 10:19, Processed in 0.163498 second(s), 32 queries.© 2003-2025 cbk Team.

快速回复 返回顶部 返回列表