17. equals和==的区别

手机游戏开发者 2024-10-9 12:15:30 99 0 来自 中国
文章参考:
https://www.jianshu.com/p/7a349a75c324
https://www.cnblogs.com/blueskyli/p/9932017.html
1、配景先容

== 比力的是变量(栈)内存中存放的对象的(堆)内存地点,用来判断两个对象的地点是否雷同,便是否是指雷同一个对象。比力的是真正意义上的指针操纵。
equals用来比力的是两个对象的内容是否相等,由于全部的类都是继续自java.lang.Object类的,以是实用于全部对象,如果没有对该方法举行覆盖的话,调用的仍旧是Object类中的方法,而Object中的equals方法返回的却是==的判断。
java中的数据范例可以分为两类:
1.1 根本数据范例

byte,short,char,int,long,float,double,boolean
根本数据范例之间的比力必要用双等号(==),由于他们比力的是值
1.2 引用数据范例

接口、类、数组等非根本数据范例
Java中的字符串String属于引用数据范例。由于String是一个类
当他们用(==)举行比力的时间,比力的是他们在内存中的存放地点,以是,除非是同一个new出来的对象,他们的比力后的结果为true,否则比力后结果为false。由于没new一次就会重新开发一个新的堆内存空间
2、Java中的==

2.1 Java中的==

Java中的==体现的是什么呢?偶然候很令人费解。好比,以下例子输出是什么?
您需要登录后才可以回帖 登录 | 立即注册

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

GMT+8, 2024-11-21 19:23, Processed in 0.184653 second(s), 32 queries.© 2003-2025 cbk Team.

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