引用型變數==和equals那些事兒
阿新 • • 發佈:2021-01-20
好了,在前面這段時間的瘋狂突擊工作後,暫時告一段落,接下來的模組過了今天再繼續開發(我不管我今天就是不想燒腦學習了,就是想休息一天!!!!!),現在對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,表示要比較的是兩個變數代表的值是否相等,而用==時表示兩個引用型變數所指地址是否想等,所以這時即使兩個變數代表的值相等,也有可能會出現兩個變數匹配失敗的結果。
至此,結束。