Java 二维数组默认值
时间: 2025-01-02 17:43:38 浏览: 10
### Java 中二维数组的默认初始化值
在 Java 中,当声明并动态初始化一个二维数组时,如果仅指定了数组的结构而未赋具体数值,则会自动赋予默认初始值。
对于整数类型的二维数组 `int[][]`,其元素会被设置为 `0`。这适用于所有嵌套的一维子数组中的元素[^1]。然而,需要注意的是,在创建像 `int[][] arr2 = new int[3][];` 这样的不规则二维数组(即每一行可以有不同的列数)时,虽然外层数组被分配了空间,但是内部指向各一维数组的引用如果没有显式指定大小,默认情况下这些引用将保持为 `null`,直到它们各自通过 `new` 关键字进一步实例化为止[^2]。
下面是一个简单的例子来展示这一点:
```java
public class ArrayInitDemo {
public static void main(String[] args){
// 创建一个具有两行三列的二维数组,并打印其中的内容
int[][] regularArray = new int[2][3];
for (int i = 0; i < regularArray.length; ++i) {
for (int j = 0; j < regularArray[i].length; ++j) {
System.out.print(regularArray[i][j] + " ");
}
System.out.println();
}
// 尝试访问一个尚未初始化内层数组的情况
int[][] irregularArray = new int[2][];
try{
System.out.println(irregularArray[0][0]);
} catch(Exception e){
System.out.println("Error: Trying to access uninitialized array element.");
}
}
}
```
这段程序首先定义了一个常规的二维数组 `regularArray` 并展示了它的默认初始化状态——所有的整型成员都被设为了零;接着尝试去读取另一个名为 `irregularArray` 的对象的第一个位置上的第一个元素之前并没有对其进行适当初始化的结果是抛出了异常,因为此时该处存储着 `null` 而不是有效的数组引用。
阅读全文