Java中的“”與null 判斷==與equals,注意了嗎?
阿新 • • 發佈:2020-07-27
1 package com.xqc.test; 2 3 public class TestNULLAndEquals { 4 public static void main(String[] args) { 5 //str1不是一個例項化物件 6 String str1=null; 7 //str2是已經例項化,已經分配了記憶體,在記憶體中存在 8 //可以使用Object的str2.equals(),str2.toString方法 9 String str2=""; 10 //false,==判斷是否指向同一物件11 System.out.println(str1==""); 12 //false 13 System.out.println(str2==null); 14 15 //報錯,str1不是一個例項化物件,不能使用Object的方法 16 //System.out.println(str1.equals("")); 17 //false,String中的equals進行了重寫,比較兩個字串是否相等 18 System.out.println(str2.equals(null));19 //false 20 System.out.println(str1==str2); 21 //報錯,str1不是例項化物件,不能使用Object的方法 22 System.out.println(str1.equals(str2)); 23 } 24 25 }
1 package com.xqc.test; 2 3 public class TestNULLAndEquals { 4 public static void main(String[] args) { 5 //str1不是一個例項化物件6 String str1=null; 7 //str2是已經例項化,已經分配了記憶體,在記憶體中存在 8 //可以使用Object的str2.equals(),str2.toString方法 9 String str2=""; 10 //false,==判斷是否指向同一物件 11 System.out.println(str1==""); 12 //false 13 System.out.println(str2==null); 14 15 //報錯,str1不是一個例項化物件,不能使用Object的方法 16 //System.out.println(str1.equals("")); 17 //false,String中的equals進行了重寫,比較兩個字串是否相等 18 System.out.println(str2.equals(null)); 19 //false 20 System.out.println(str1==str2); 21 //報錯,str1不是例項化物件,不能使用Object的方法 22 System.out.println(str1.equals(str2)); 23 } 24 25 }