1. 程式人生 > 實用技巧 >引用型變數==和equals那些事兒

引用型變數==和equals那些事兒

好了,在前面這段時間的瘋狂突擊工作後,暫時告一段落,接下來的模組過了今天再繼續開發(我不管我今天就是不想燒腦學習了,就是想休息一天!!!!!),現在對Java不太懂得點進行查漏補缺學習。

一、java變數

變數分為兩種,基本型的變數和引用型的變數

1. 基本型的變數:類似於int、char、double等型別的變數,這類成為基本型變數,我們要使用這類變數時需要為此變數進行一個初始值賦值才可以。這幾種型別在Java中也被稱為基本資料型別。基本資料型別是CPU可以直接進行運算的型別。Java定義了以下幾種基本資料型別:

整數型型別:int、short、long、byte

浮點型別:double、float

字元型別:char

布林型別:bool

2. 引用型變數:除了上方列出來的基本資料型別變數外,其他型別例如String型別都成為引用型變數。引用型別的變數類似於C語言的指標,它內部儲存一個“地址”,指向某個物件在記憶體的位置,就String來看,我們一般有以下兩種十分相似的寫法:

String para = "string" ;
        String param = "string" ;
        if(para.equals(param)){
            System.out.println("param和para匹配成功");
        }else {
            System.out.println("param和para匹配失敗");
        }

此時輸出結果是:

緊接著再執行下述程式碼:

String para = "string" ;
        String param = "string" ;
        if(para == param){
            System.out.println("param和para匹配成功");
        }else {
            System.out.println("param和para匹配失敗");
        }

執行結果如下:

然後發現兩次執行結果不一樣,這就是引用型變數和基本型變數的區別所在了。

在我們使用引用型變數時,兩個引用型變數對比如果用equals,表示要比較的是兩個變數代表的值是否相等,而用==時表示兩個引用型變數所指地址是否想等,所以這時即使兩個變數代表的值相等,也有可能會出現兩個變數匹配失敗的結果。

至此,結束。