是的,它只创建引用,这些引用设置为默认值 null。这就是为什么你得到一个 NullPointerException 你需要单独创建对象并分配引用。在 Java 中创建数组有 3 个步骤 -
声明 – 在此步骤中,我们指定要创建的数组的数据类型和维度。但请记住,我们还没有提到尺寸的大小。它们是空的。
实例化 – 在这一步中,我们使用 new 关键字创建数组或为数组分配内存。正是在这一步中,我们提到了数组维度的大小。
初始化 – 数组始终初始化为数据类型的默认值。但是我们可以进行自己的初始化。
在 Java 中声明数组
这就是我们在 Java 中声明一维数组的方式——
int[] array;
int array[];
Oracle 建议您使用前一种语法来声明数组。
以下是其他一些法律声明的示例——
// One Dimensional Arrays
int[] intArray; // Good
double[] doubleArray;
// One Dimensional Arrays
byte byteArray[]; // Ugly!
long longArray[];
// Two Dimensional Arrays
int[][] int2DArray; // Good
double[][] double2DArray;
// Two Dimensional Arrays
byte[] byte2DArray[]; // Ugly
long[] long2DArray[];
这些是一些非法声明的例子——
int[5] intArray; // Don't mention size!
double{} doubleArray; // Square Brackets please!
实例化
这就是我们“实例化”或为数组分配内存的方式——
int[] array = new int[5];
当JVM遇到new关键字时,它明白它必须为某事分配内存。通过指定int[5],我们的意思是我们想要一个大小为5 的ints 数组。
因此,JVM 创建内存并将新分配的内存的引用分配给数组,该数组的“引用”类型为int[]
初始化
使用循环 – 使用 for 循环来初始化数组的元素是使数组运行的最常用方法。如果您要自己分配默认值,则无需运行 for 循环,因为 JVM 会为您完成。
All in One..! – 我们可以一次性声明、实例化和初始化我们的数组。这是语法 -
int[] arr = {1, 2, 3, 4, 5};
这里我们不提大小,因为 JVM 可以看到我们给出了 5 个值。