当前位置:首页 > 后端开发 > 正文

怎么声明Java数组长度?

在Java中声明数组长度有两种方式:使用new关键字直接指定长度(如int[] arr = new int[5];),或通过初始化元素隐式确定长度(如int[] arr = {1,2,3};),数组长度一旦确定不可更改,需在创建时明确定义。

声明数组长度的两种核心方式

直接指定长度(动态初始化)

通过 new 关键字明确声明数组长度,语法:
数据类型[] 数组名 = new 数据类型[长度];

  • 特点:先分配固定内存,后赋值

  • 示例

    // 声明长度为5的整型数组
    int[] numbers = new int[5]; 
    // 声明长度为3的字符串数组
    String[] names = new String[3]; 
    • 此时数组元素为默认值(如 int 默认为0,String 默认为 null)。

通过元素个数隐式确定长度(静态初始化)

通过大括号 初始化元素,长度由元素数量自动确定:
数据类型[] 数组名 = {元素1, 元素2, ..., 元素N};

怎么声明Java数组长度?  第1张

  • 特点:声明时直接赋值,长度不可更改

  • 示例

    // 隐式声明长度为4
    int[] scores = {90, 85, 77, 95}; 
    // 隐式声明长度为2
    String[] colors = {"Red", "Blue"}; 

关键注意事项

  1. 长度不可变
    数组一旦创建,长度无法修改,需扩展长度时,只能创建新数组并复制数据:

    int[] original = {1, 2, 3};
    int[] resized = new int[5]; // 新长度
    System.arraycopy(original, 0, resized, 0, original.length);
  2. 获取已声明数组的长度
    使用 数组名.length 属性(非方法):

    String[] fruits = {"Apple", "Banana"};
    System.out.println(fruits.length); // 输出:2
  3. 避免常见错误

    • 未指定长度int[] arr; 仅是声明引用,未分配内存
    • 长度非整数new int[5.0] 会导致编译错误
    • 负长度new int[-1] 抛出 NegativeArraySizeException

多维数组的长度声明

多维数组需逐级指定长度:

// 声明3行4列的二维数组
int[][] matrix = new int[3][4]; 
// 不规则数组(第二维长度不同)
int[][] jagged = new int[2][]; 
jagged[0] = new int[3]; // 第一行长度3
jagged[1] = new int[5]; // 第二行长度5

最佳实践建议

  1. 明确场景选择初始化方式
    • 已知元素值 → 静态初始化()
    • 需后续赋值 → 动态初始化(new
  2. 内存预分配
    大型数组优先使用 new 明确长度,避免多次扩容。
  3. 增强代码可读性
    长度变量名使用常量(如 final int MAX_SIZE = 100;)。

引用说明遵循Oracle官方Java文档规范,参考《Java™语言规范(SE 17版)》第10章“数组”,代码示例经JDK 17编译验证,确保准确性。

0