null和 以及 與equals的區別

2021-09-22 02:28:54 字數 880 閱讀 4086

string型別與null比較用==,string型別與空字串「」比較用equals

string str1 = null; str引用為空

string str2 = ""; str引用為空串

1.直接點就是null沒有分配記憶體空間,而""分配了記憶體空間,因此str1還不是乙個例項化的物件,而str2已經例項化。

2.注意因為null不是物件,""是物件。所以比較的時候必須是 if(str1==null)和if(str2.equals(""))

3.記憶體位址比較用equals,null用==比較。

因此,如果str1=null;下面的寫法錯誤:

if(str1.equals("")||str1==null)

正確的寫法是 if(str1==null||str1.equals(""))

string name = request.getparameter("name");

if(filmname==null)else if (name.equals(""))

控制台輸出: name.equals("")

說明request從表單中標籤中獲取預設空的值!=null,而是空字串。

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

//如下面的**,執行過後,返回為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 str1 null str引用為空 string str2 str引用為空串 直接點就是null 沒有分配記憶體空間,而 分配了記憶體空間,因此str1還不是乙個例項化的物件,而str2已經例項化。注意因為null 不是物件,是物件。所以比較的時候必須是 if str1 null 和i...

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

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