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

Cur*_*ind 0 java arrays

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

Integer[100] intArr1;  ----- (1)
Run Code Online (Sandbox Code Playgroud)

这是有效的:

Integer[] intArr;      ----- (2)
Run Code Online (Sandbox Code Playgroud)

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

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

Kay*_*man 5

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

第二个占用0个内存,因为你还没有创建一个数组.仅引用数组,引用为null.

你需要在new Integer[100]那里实际创建数组对象.