java的equals和==的比較示例
先看例子:
package com.amos;
/**
* @ClassName: EqualTest
* @Description:Java中的equal和==的比較
* @author: amosli
*/
public class EqualTest {
public static void main(String[] args) {
int a = 1;
float b = 1.0f;
System.out.println(a == b);// true
String c = new String("hi_amos");
String d = new String("hi_amos");
System.out.println(c == d);// false
System.out.println(c.equals(d));// true
}
}
Java中判斷兩個(gè)變量是否相等主要有兩種判方式:一種是利用==運(yùn)算符,另一種是利用equals方法來判斷兩者是否相同.
1).當(dāng)使用==來判斷兩個(gè)變量是否相等時(shí),如果兩個(gè)變量是基本類型變量,且都是數(shù)值類型,不要求數(shù)據(jù)類型嚴(yán)格相同,只要兩個(gè)變量的值相等,那么將返回true.
2).如果對于兩個(gè)引用類型變量,它們必須指向一個(gè)對象時(shí),==判斷才會返回true.==不可用于比較類型上沒有父子關(guān)系的兩個(gè)對象.
如上可以解釋同樣一new String時(shí),==判斷兩者是否相同返回的是false,而equals返回的是true.
equals方法針對的String類,查看其源碼,可以發(fā)現(xiàn)其實(shí)equals只能算是==的一種特例.如下面源碼所示:
public boolean equals(Object anObject) {
if (this == anObject) {
return true;
}
if (anObject instanceof String) {
String anotherString = (String) anObject;
int n = value.length;
if (n == anotherString.value.length) {
char v1[] = value;
char v2[] = anotherString.value;
int i = 0;
while (n-- != 0) {
if (v1[i] != v2[i])
return false;
i++;
}
return true;
}
}
return false;
}
equals方法實(shí)際上一開始就調(diào)用了==判別式,然后再判斷其進(jìn)一步值是否正確
相關(guān)文章
詳解如何將springboot項(xiàng)目導(dǎo)出成war包
這篇文章主要介紹了詳解如何將springboot項(xiàng)目導(dǎo)出成war包,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-10-10java模擬實(shí)現(xiàn)斗地主發(fā)牌小程序
這篇文章主要為大家詳細(xì)介紹了java模擬實(shí)現(xiàn)斗地主發(fā)牌小程序,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-04-04Springboot中使用Filter實(shí)現(xiàn)Header認(rèn)證詳解
這篇文章主要介紹了Springboot中使用Filter實(shí)現(xiàn)Header認(rèn)證詳解,當(dāng)在?web.xml?注冊了一個(gè)?Filter?來對某個(gè)?Servlet?程序進(jìn)行攔截處理時(shí),它可以決定是否將請求繼續(xù)傳遞給?Servlet?程序,以及對請求和響應(yīng)消息是否進(jìn)行修改,需要的朋友可以參考下2023-08-08JDBC數(shù)據(jù)庫連接過程及驅(qū)動加載與設(shè)計(jì)模式詳解
這篇文章主要介紹了JDBC數(shù)據(jù)庫連接過程及驅(qū)動加載與設(shè)計(jì)模式詳解,需要的朋友可以參考下2016-10-10淺談使用java實(shí)現(xiàn)阿里云消息隊(duì)列簡單封裝
這篇文章主要介紹了淺談使用java實(shí)現(xiàn)阿里云消息隊(duì)列簡單封裝,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-03-03