null和 以及 與equals的區別

2021-07-02 00:24:20 字數 825 閱讀 7735

string str1 = 

null

; str引用為空   

string str2 = ""

; str引用為空串   

直接點就是null

沒有分配記憶體空間,而

""分配了記憶體空間,因此str1還不是乙個例項化的物件,而str2已經例項化。   

注意因為null

不是物件,

""是物件。所以比較的時候必須是 

if(str1==

null

)和if

(str2.equals(

""))   

記憶體位址比較用equals,null

用等號比較。  

因此,如果str1=null

;下面的寫法錯誤:   

if(str1.equals(

"")||str1==

null

)   

正確的寫法是 if

(str1==

null

||str1.equals(

""))   

//==與equeal得區別如下:

//如下面的**,執行過後,返回為false;

public

static

void

main(string ab)  

//這是因為==比較的是兩個引用時是不是指向同乙個記憶體位址,而equeals比較的是字面值。上面的new就產生了兩個不同的物件,那麼其記憶體位址肯定也就不同了。

public

static

void

main(string ab)//返回為true

null和 以及 與equals的區別

string str1 null str引用為空 string str2 str引用為空串 直接點就是null沒有分配記憶體空間,而 分配了記憶體空間,因此str1還不是乙個例項化的物件,而str2已經例項化。注意因為null不是物件,是物件。所以比較的時候必須是 if str1 null 和if ...

null和 以及 與equals的區別

string型別與null比較用 string型別與空字串 比較用equals string str1 null str引用為空 string str2 str引用為空串 1.直接點就是null沒有分配記憶體空間,而 分配了記憶體空間,因此str1還不是乙個例項化的物件,而str2已經例項化。2.注...

null 與 equals判斷順序引起的頭疼事

寫了乙個方法,擷取字串的長度 public static string parseimagepath string path else return imagepath 標紅色 有問題。如果path null,那麼這個判斷就不起作用了,會報錯 剛開始,怎麼也想不通,已經在控制台上輸出了path nu...