null和 以及 與equals的區別

2021-06-27 07:27:46 字數 861 閱讀 7445

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(""))

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

if(filmname==null)

else if (name.equals(""))

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

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

//==與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 和i...

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...