首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

Java 判斷字符串是否為空的四種方法與性能對比

     編輯:Java 相關知識

四種判斷方式

方法代碼優點缺點
1. equals("")s == null || s.equals("")直觀效率最低(方法調用開銷)
2. length() == 0s == null || s.length() == 0效率高,直接訪問字段需額外 null 判斷
3. isEmpty() (Java 6+)s == null || s.isEmpty()語義清晰,效率同 length()Java 6 以下不可用
4. == ""s == null || s == ""極快(引用比較)僅對字面量/常量池字符串有效,new String("") 會失效

性能測試結果(1000 萬次循環)

  • 方法 1:140 ms
  • 方法 2:47 ms
  • 方法 3:47 ms
  • 方法 4:47 ms

最佳實踐建議

  1. 推薦方法 2:s == null || s.length() == 0,兼容所有版本、效率高、語義明確。
  2. Java 6+ 環境可用方法 3 isEmpty(),可讀性更好。
  3. 避免方法 4:== "" 僅比較引用,極易產生 Bug。
  4. 永遠將 null 判斷放在前面,利用短路特性避免 NullPointerException。

錯誤示例

String str = null;
if (str.equals("") || str == null) { // 拋出 NPE
    ...
}
// 正確寫法
if (str == null || str.isEmpty()) { ... }
// 或使用常量在前
if ("".equals(str)) { ... } // 安全,不拋 NPE
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved