程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> JAVA綜合教程 >> isEmpty與null、""的區別,isemptynull區別

isEmpty與null、""的區別,isemptynull區別

編輯:JAVA綜合教程

isEmpty與null、""的區別,isemptynull區別


前一段時間我閱讀別人的代碼,發現有的時候用isEmpty,有的時候用null,有的時候用""。我很困惑三者之間的區別,於是我就自己寫了一個程序來驗證一下

1 public class Test { 2 public static void main(String[] args) { 3 //分配內存空間,值為空 4 String a = new String(); 5 //分配內存空間,值為空字符串 6 String b = ""; 7 //未分配內存空間 8 String c = null; 9 10 if (a != null) { 11 System.out.println("a值存在"); 12 } 13 if (b != null) { 14 System.out.println("b值存在"); 15 } 16 if (c == null) { 17 System.out.println("c值不存在"); 18 } 19 if (a == "") { 20 System.out.println("a值存在,為空字符串"); 21 } 22 if (b == "") { 23 System.out.println("b值存在,為空字符串"); 24 } 25 //dead code 26 if (c == "") { 27 System.out.println("c值存在,為空字符串"); 28 } 29 if (a.isEmpty()) { 30 System.out.println("a值存在,為空字符串或者為空"); 31 } 32 if (b.isEmpty()) { 33 System.out.println("b值存在,為空字符串或者為空"); 34 } 35 // Null pointer access: The variable c can only be null at this location 36 // if (c.isEmpty()) { 37 // System.out.println("String c=null"); 38 // } 39 } 40 41 } View Code

運行的結果如下

1 a值存在 2 b值存在 3 c值不存在 4 b值存在,為空字符串 5 a值存在,為空字符串或者為空 6 b值存在,為空字符串或者為空 View Code

得出的結論:

isEmpty()

1.如果不分配內存空間,不能用isEmpty(),否則報空指針異常

2.isEmpty()不能分辨出值是空還是空字符串

null

1.null只能分辨出值是否不分配內存空間

“”

1.不管值是否分配內存空間都不會報錯

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved