文章参考:
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中的==体现的是什么呢?偶然候很令人费解。好比,以下例子输出是什么? |