为什么`Integer [100] arr;`无效,而`Ineger [] arr;`有效?

时间:2017-09-20 06:42:58

标签: java arrays

我试图为100个项目分配一个Integer数组,为什么这个声明在Java中没有效?

Integer[100] intArr1;  ----- (1)

这是有效的:

Integer[] intArr;      ----- (2)

As(2)有效,它占用了多少内存?任何人都可以帮忙解释一下。

在SO中有一些类似于我的问题的问题,但是它们不一样,在问这个问题之前我确实看过了。

4 个答案:

答案 0 :(得分:5)

第一个无效,因为这不是正确的Java语法。

第二个占用0个内存,因为您尚未创建数组。仅引用数组,引用为null

您需要new Integer[100]来实际创建数组对象

答案 1 :(得分:1)

你正在混合两种不同的东西。

有一点是变量的类型。在你的情况下,你想说"变量的类型intArr是整数数组",这是代码Integer[] intArr;

在变量中,哪个类型是整数数组,您可以放置​​任何您喜欢的整数数组,无论大小如何,因此您无法预先定义它。

第二件事是分配给变量。

Integer[] intArr = new Integer[10];

答案 2 :(得分:1)

要初始化包含100个项目的数组:

Integer intArr1[] = new Integer[100];

你的第二行代码只声明了一个变量,没有声明大小。

答案 3 :(得分:1)

当您声明一个数组时,您不会给它一个长度。你初始化时只给它一个长度。

这只是一个声明:

int[] myArray;

如果要使用长度为100的数组对其进行初始化,请执行以下操作:

myArray = new int[100];

默认情况下,未初始化的数组为null,如果它位于本地范围内,则无法访问。