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