搜尋
首頁JavaJava基礎java中字串恆等判斷

java中字串恆等判斷

Nov 29, 2019 pm 03:29 PM
java字串

java中字串恆等判斷

1. 起因:字串恆等判斷

//String is reference type
String str1 = new String("hello");
String str2 = new String("hello");
 
System.out.println(str1==str2);
// false
System.out.println(str1.equals(str2));
// true

線上學習影片分享:java線上學習

2. 關係運算子「==」

##重點:「==」只可以處理基本資料型別對應值的恆等判斷,不適用引用資料型別(其值存的是位址)

public class Main {
    public static void main(String[] args) {
        int n=3;
        int m=3;
// true
        System.out.println(n==m);
 
        String str = new String("hello");
        String str1 = new String("hello");
        String str2 = new String("hello");
// false
        System.out.println(str1==str2);
 
        str1 = str;
        str2 = str;
// true
        System.out.println(str1==str2);
 
    }
}

n==m結果為true,這個很容易理解,變數n和變數m儲存的值都是3,肯定是相等的。而為什麼str1和str2兩次比較的結果不同?要理解這個其實只需要理解基本資料型態變數和非基本資料型別變數的差異。

Java中的8個基本資料型別

浮點型:float, double;整數型:byte, short, int , long; 字元型: char;布林型: boolean。

對於這8種基本資料類型的變量,變數直接儲存的是“值”,因此在用關係運算元==來進行比較時,比較的就是 “值” 本身。

要注意浮點型和整數型都是有符號型的,而char是無符號型別的.

對於非基本資料型別的變數(引用型別),如String型別,引用類型的變數儲存的並不是「值」本身,而是與其關聯的物件在記憶體中的位址。如,str1並不是直接儲存的字串"hello",而是該物件所對應的位址。

因此在用==對str1和str2進行第一次比較時,得到的結果是false。因為它們分別指向的是不同的對象,也就是說它們實際儲存的記憶體位址不同。而在第二次比較時,str1和str2同時指向了str指向的對象,那麼得到的結果毫無疑問是true(位址相同)。

3. Object方法「equals()」

equals方法是基底類別Object中的方法,因此對於所有的繼承於Object的類別都會有該方法。在Object類別中,equals方法是用來比較兩個物件的參考是否相等,即是否指向同一個物件.

public class Main {
    public static void main(String[] args) {
        String str1 = new String("hello");
        String str2 = new String("hello");
// true
        System.out.println(str1.equals(str2));
 
    }
}

String類別對equals方法進行了重寫,用來比較指向的字串物件所儲存的字串是否相等。其他的一些類別諸如Double,Date,Integer等,都對equals方法進行了重寫用來比較指向的物件所儲存的內容是否相等。

小結:

對於==:如果作用於基本資料類型的變量,則直接比較其儲存的「值」是否相等; 如果作用於引用類型的變量,則比較的是所指向的物件的位址

對於equals方法:如果沒有對equals方法進行重寫,則比較的是引用類型的變數所指向的物件的位址;諸如String、 Date等類別對equals方法進行了重寫的話,比較的是所指向的物件的內容(equals方法不能作用於基本資料類型的變數)。

更多相關文章教學請造訪:

java入門#

以上是java中字串恆等判斷的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文轉載於:CSDN。如有侵權,請聯絡admin@php.cn刪除

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 個月前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
1 個月前By尊渡假赌尊渡假赌尊渡假赌
威爾R.E.P.O.有交叉遊戲嗎?
1 個月前By尊渡假赌尊渡假赌尊渡假赌

熱工具

PhpStorm Mac 版本

PhpStorm Mac 版本

最新(2018.2.1 )專業的PHP整合開發工具

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

將Eclipse與SAP NetWeaver應用伺服器整合。

SublimeText3 英文版

SublimeText3 英文版

推薦:為Win版本,支援程式碼提示!

Atom編輯器mac版下載

Atom編輯器mac版下載

最受歡迎的的開源編輯器

Dreamweaver Mac版

Dreamweaver Mac版

視覺化網頁開發工具