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

Java 數組創建完全指南:聲明、實例化、初始化三階段詳解

     編輯:Java 相關知識

三階段模型

// 階段 1:聲明 — 僅創建引用變量,不分配內存
int[] intArray0;
int intArray1[];  // 不推薦:類型可讀性差

// 階段 2:創建 — 分配堆內存,賦默認值
intArray0 = new int[3];           // 指定長度
intArray1 = new int[]{0, 1, 2};   // 同時初始化

// 階段 3:初始化 — 顯式賦予業務值(可合併在創建階段)
int[] arr = new int[]{10, 20, 30};  // 聲明+創建+初始化一步到位

聲明語法規範

類型推薦寫法不推薦寫法說明
基本類型int[] arrint arr[]類型在前,語義清晰
引用類型String[] arrString arr[]同理
錯誤示範int[5] arr聲明不能指定長度

創建與默認值驗證

public class DefaultValueTest {
    public static void main(String[] args) {
        int[] intArr = new int[3];
        float[] floatArr = new float[3];
        boolean[] boolArr = new boolean[3];
        char[] charArr = new char[3];
        String[] strArr = new String[3];
        
        System.out.println("int: " + intArr[0]);      // 0
        System.out.println("float: " + floatArr[0]);  // 0.0
        System.out.println("boolean: " + boolArr[0]); // false
        System.out.println("char: " + (int)charArr[0]); // 0 (\u0000)
        System.out.println("String: " + strArr[0]);   // null
    }
}

初始化分類詳解

靜態初始化 — 程序員指定值,系統定長度

// 完整語法
int[] arr1 = new int[]{10, 20, 30};

// 簡化語法(僅限聲明語句)
int[] arr2 = {10, 20, 30};

// 多維數組
int[][] matrix = {{1,2}, {3,4}, {5,6}};

動態初始化 — 指定長度,系統賦默認值

int[] arr = new int[5];  // {0,0,0,0,0}
String[] names = new String[3];  // {null,null,null}

關鍵規則總結

  1. 聲明不指定長度:中括號內不能有數字
  2. new 即分配內存即有默認值:不可能只分配不賦值
  3. 基本類型包裝類數組默認 null:屬於引用類型數組
  4. 靜態初始化不可指定長度:new int[3]{1,2,3} ❌
  5. 動態初始化必須指定長度:new int[] ❌
  6. 不可混用:不能同時指定長度又指定每個元素值

完整可運行代碼

package javabase;

public class CreateArray {
    public static void main(String[] args) {
        // 聲明
        int[] intArray0; int intArray1[];
        float[] floatArray0; float floatArray1[];
        boolean[] boolArray0; boolean boolArray1[];
        char[] charArray0; char charArray1[];
        String[] stringArray0; String stringArray1[];
        
        // 創建
        intArray0 = new int[3];
        intArray1 = new int[]{0, 1, 2};
        
        // 驗證默認值
        System.out.println("intArray0[0]=" + intArray0[0]);
        floatArray0 = new float[3];
        System.out.println("floatArray0[0]=" + floatArray0[0]);
        boolArray0 = new boolean[3];
        System.out.println("boolArray0[0]=" + boolArray0[0]);
        charArray0 = new char[3];
        System.out.println("charArray0[0]=" + (int)charArray0[0]);
        stringArray0 = new String[3];
        System.out.println("stringArray0[0]=" + stringArray0[0]);
        
        // 初始化
        int[] intArray2 = new int[]{20, 21, 22};
        int[] intArray3 = {30, 31, 32};
        int[] intArray4 = new int[3];
        
        System.out.println("intArray2[0]=" + intArray2[0]);
        System.out.println("intArray3[0]=" + intArray3[0]);
        System.out.println("intArray4[0]=" + intArray4[0]);
    }
}

動態初始化默認值規則表

元素類型默認值
byte/short/int/long0
float/double0.0
char'\u0000'
booleanfalse
引用類型(類/接口/數組)null

總結

記住核心口訣:聲明不分內存,創建分內存且有默認值,初始化賦業務值。三階段可合併,語法規則要記清。數組是引用類型,掌握內存分配機制是避免 NPE 與邏輯錯誤的關鍵。

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