3 回答
TA贡献1844条经验 获得超8个赞
这是对的。
A[] a = new A[4];
创建4个A引用,类似于这样做
A a1;A a2;A a3;A a4;
现在你不能在不分配a1的情况下执行a1.someMethod()
a1 = new A();
同样,您需要使用阵列
a[0] = new A();
在使用它之前。
TA贡献1909条经验 获得超7个赞
这是对的。你也可以这样做:
A[] a = new A[] { new A("args"), new A("other args"), .. };
此语法还可用于在任何位置创建和初始化数组,例如在方法参数中:
someMethod( new A[] { new A("args"), new A("other args"), . . } )
TA贡献1831条经验 获得超10个赞
是的,它只创建引用,将其设置为默认值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],我们意味着我们需要一个int大小为5 的s 数组。因此,JVM创建内存并将新分配的内存的引用分配给类型为“引用”的类型int[]
初始化
使用循环 - 使用for循环初始化数组元素是获取数组的最常用方法。如果您要自己分配默认值,则无需运行for循环,因为JVM会为您执行此操作。
一体..! - 我们可以一次性声明,实例化和初始化我们的数组。这是语法 -
int[] arr = {1, 2, 3, 4, 5};
在这里,我们没有提到大小,因为JVM可以看到我们给出了5个值。
因此,在我们实例化之前,引用保持为null。我希望我的回答能帮助你......!:)
源 - Java中的数组
添加回答
举报