== 和equals的區別
先來看一下其餘大佬寫的一些理解
1、== : 它的作用是判斷兩個物件的位址是不是相等。即,判斷兩個物件是不是同乙個物件。(基本資料型別 == 比較的是值,引用資料型別 == 比較的是記憶體位址)
2、equals() : 它的作用也是判斷兩個物件是否相等。但它一般有兩種使用情況:
情況1:類沒有覆蓋 equals() 方法。則通過 equals() 比較該類的兩個物件時,等價於通過「==」比較這兩個物件。
情況2:類覆蓋了 equals() 方法。一般,我們都覆蓋 equals() 方法來兩個物件的內容相等;若它們的內容相等,則返回 true (即,認為這兩個物件相等)。
public
class test1
}}
首先 最明顯的區別就是 == 不能比較物件是否相等,而equals()卻可以,那麼是為什麼呢?
上原始碼
public
boolean
equals
(object anobject)
//先去判斷型別是否是string型
if(anobject instanceof
string
)return
true;}
}return
false
;}
看完這個能看出equals是 == 的一種「擴充套件」(但是基本型別不能使用equals),equals底層也是使用 == 去進行比較,
1、== 對於基本型別來說是值比較,對於引用型別來說是比較的是引用;
而 equals 預設情況下是引用比較,只是很多類重新了 equals 方法,
比如 string、integer 等把它變成了值比較,
所以一般情況下 equals 比較的是值是否相等。
2、 ==是乙個運算子 而 equals()是乙個方法,所以equals()可以被重寫,可擴充套件型比較強。
3、如果沒有對equals方法進行重寫,則比較的是引用型別的變數所指向的物件的位址
Bundle 究竟是什麼?
bundle用於場景 在我印象中比較深刻的是,一般用於activity之間傳遞數值,也用於handler傳送訊息,如下 intent intent new intent bundle bundle new bundle bundle.putstring key value intent.putext...
分析EOF究竟是什麼
eof僅僅是一種狀態或者說條件,需要觸發。read呼叫遇到檔案結尾,觸發該條件,結果將返回0。針對eof,對於標準輸入裝置,普通檔案,管道檔案,網路套接字檔案是read如何觸發呢?下面程式將說明 server.c 是socket套接字服務端,目的為了網路套接字檔案是read如何觸發測試用的。serv...
分析EOF究竟是什麼
eof僅僅是一種狀態或者說條件,需要觸發。read呼叫遇到檔案結尾,觸發該條件,結果將返回0。針對eof,對於標準輸入裝置,普通檔案,管道檔案,網路套接字檔案是read如何觸發呢?下面程式將說明 server.c 是socket套接字服務端,目的為了網路套接字檔案是read如何觸發測試用的。serv...