與 equals 的恩怨情仇

2021-07-31 23:34:40 字數 1144 閱讀 3193

基本資料型別不用通過new關鍵字來建立變數,直接儲存「值」並置於堆疊中,更加高效。

如:boolean、char、byte、short、int、long、float、double、void。

引用資料型別通過new關鍵字來完成建立。

如:string,integer

== 比較的是物件的引用。

equals 適用於引用型別的比較,不能用來比較基本資料型別,基本資料型別直接使用 == 和 != 來比較 。預設比較的是物件的引用,可以對預設實現進行自定義,進行其他的比較。

例項**:

public

static

void

main(string args)

執行結果:

基本資料型別比較:true

integer的equals:true

integer的==false

上面的integer1和integer2是分別new出來的,會有自己各自的位址值,也就是自己的引用,所以 == 比較的時候結果是false,但是equals的結果是true.why?,隨我進入原始碼一**竟:

integer原始碼片段:

public

boolean

equals(object obj)

return

false;

}

原來如此,在integer的原始碼中equals比較的不再是引用,而是值,所以結果是true.

string原始碼中equals中的實現:

public boolean equals(object anobject) 

if (anobject instanceof string)

return

true;}}

return

false;

}

object原始碼中equals中的實現:

public

boolean

equals(object obj)

jq與js的恩怨情仇

var is selected new array var obj is selected obj.each function e,v var obj is selected obj.each function e,v function setval inum var aform document....

get與post的恩怨情仇

get和post沒有本質上的區別,都是屬於http請求協議,但硬要說它們之間的區別,暫時概括了以下兩點 1.get請求的headers中沒有content type這個字段,post 的 content type 有兩種 這種就是一般的文字表單用post傳遞資料,只要將得到的data用queryst...

vscode與docker的恩怨情仇

背景 docker伺服器將docker容器根目錄掛著載乙個固態硬碟a上 安裝軟體 將工作區 存放平時的檔案 掛著載硬碟b上。硬碟a快但是容量小,限制每個容器使用500m 硬碟b容量大且速度夠用,限制每個容器使用好多g。問題1 使用vscode去遠端編輯 vscode將執行程式安裝在 root vsc...