通过上篇文章,相信大家对数组应该有了一个简单的了解,并对Java中的数据类型有了一个基本的认识,不仅如此我们还明白了怎样定义一个数组类型的变量,在这之后,让我们一起来更加深入的了解一下数组吧。
三、如何创建一个数组(对其初始化)
上篇文章我们明白了怎样定义一个数组类型的变量,但只有一个变量是没有什么实际用处的,因为变量只是一个容器,我们想要对其进行一个操作,实际上是对其中的数据进行操作,就像我们定义一个int类型的i,但并未对其赋值,我们就只是得到了一个int类型的容器i而已。
数组也是一样的,我们定义一个int[]类型的arrays,我们也需要对其进行赋值。
那么基本类型的数据我们知道,它们可以直接进入栈空间,因此可以直接存进基本类型的变量当中。
引用类型数据就不一样了,我们必须使用new关键字,帮它在堆空间内开辟出一块空间,然后再将其引用地址赋给变量,我们才能对其进行操作,例:
new int[5];
这段代码代表着,我们使用new关键字,在堆中开辟了一个空间,这个空间是多大呢,有5个int类型那么大。但由于我们没有它的引用地址,因此通过栈空间,我们无法找到这片空间,所以我们所做的也仅仅是开辟了这么一片空间而已,无法对其进行操作。所以我们必须定义一个数组类型的变量,并将这片空间的引用地址赋予给它,我们才能够通过栈空间中变量所存储着的它的引用地址,所找到对应的堆空间中的真正的数据内容,即:
int[] array = new int[5];
这样我们就能够对其进行操作了,为了方便大家理解,这里给大家几个示意图:
这张图中,我们将数字5赋给了int i,因此在栈空间中开辟了一个空间,用来存储int类型的数字5
在这张图中,我们只不过是new了一个可以存储5个int类型数据的数组,并没有将其赋给任何变量,因此只是在堆空间为其开辟了一个区域,栈空间内什么都没有发生
在这张图中,我们不仅new了一个数组,还将其赋给了变量i,因此我们在堆空间中为数组开辟了一个空间后,还把它的引用地址1001给了变量i,这样后续我们想要对数组进行操作时,程序就能通过栈中所储存的引用地址1001,精准的找到这个数组了
像这样,我们就完成了数组的定义和赋值,那么之前说数组可以用来存储一组位置连续的、类型相同的数据(变量),我们又该怎样对其进行操作呢?图中的0,1,2,3,4又代表着什么呢?不用急,在下篇文章中,我为大家一一揭晓,那么今天的内容就到这里啦,再见~
未完待续....