首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計疑難解答

Java 基礎:Boolean[] vs boolean[] 數組默認值差異詳解

     編輯:程式設計疑難解答

現象

Boolean[] boxed = new Boolean[4];
boolean[] primitive = new boolean[4];

System.out.println(boxed[0]);    // null
System.out.println(primitive[0]); // false

根本原因

維度Boolean[](包裝類型數組)boolean[](基本類型數組)
元素類型引用類型(指向 Boolean 對象)基本類型(直接存儲 bit 值)
默認初始值null(引用類型統一默認 null)false(基本類型默認值:數值 0、字符 \u0000、布爾 false)
內存結構數組存儲 4 個引用地址,初始均為 null數組連續存儲 4 個 bit(JVM 實現通常按 byte 對齊)

同理可證

  • Integer[] → null  vs  int[] → 0
  • Double[] → null  vs  double[] → 0.0
  • Character[] → null  vs  char[] → '\u0000'

最佳實踐建議

  1. 優先使用基本類型數組(boolean[]、int[])避免 NPE,性能更優(無裝箱/拆箱、內存更緊湊)。
  2. 若需表達「未賦值」語義,可用包裝類型數組並配合 Objects.isNull() 判斷,或使用 Optional 封裝。
  3. 集合框架(List<Boolean>)同理:元素默認 null,需注意自動裝箱陷阱。

記住口訣:「對象數組初始 null,基本類型數組有默認值」。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved