我试图为100个项目分配一个Integer数组,为什么这个声明在Java中没有效?
Integer[100] intArr1; ----- (1)
这是有效的:
Integer[] intArr; ----- (2)
As(2)有效,它占用了多少内存?任何人都可以帮忙解释一下。
在SO中有一些类似于我的问题的问题,但是它们不一样,在问这个问题之前我确实看过了。
答案 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
,如果它位于本地范围内,则无法访问。