Java “==”和“.equals()”的区别。

从Java数据类型的区别可以得出答案。



==:

Java 基础数据类型:

名称类型所占空间大小(单位:byte)
float点浮型
double-8
byte 整型  1
short-2
int-4
long-8
char字符型2
boolean布尔型未规定空间大小,只能去字面值“ture”或“false”

以上数据类型,变量直接存储的是“值”,使用“==”进行比较时,对比的是"值"本身。

如:

        int i=3;

        int j=3;

        “i==j”对比的是“3”这个值,所以结果为true

对于Java非基础数据类型,变量存储的不是“值”而是关联其对象的“地址”。

如:

        String s1 = new String("string");

        String s2 = new String("string");

        System.out.print(s1==s2);

        以上结果为false,因为s1和s2拥有不同的地址



.equals():

在Object类中,equals()是用来比较两个对象的引用是否相等,即是否指向同一个对象。

### 

在String类中,equals()对比的是其储存的字符串的值。

除了String以外,Double,Date,Integer等,都与String类似。



总结:

对于“==”,如果作用于基本数据类型的变量,则比较的是他们的值。

                如果作用于引用类型的变量,则比较的是他们的地址。

对于“equals()”,首先,它不可以作用于基本数据类型的变量

                如果没有进行重写,则默认对比他们的地址。

                否则对比他们的值。(如String等。)









查看原文:https://www.cnblogs.com/dolphin0520/p/3592500.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章