1. 程式人生 > 實用技巧 >Java中的“”與null 判斷==與equals,注意了嗎?

Java中的“”與null 判斷==與equals,注意了嗎?

 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 }