什么是数组?

数组是通过连续的存储空间,存储相同类型元素的集合。

一、什么是连续的存储空间?

数组创建之后是通过连续的存储空间来存储的,其存储空间是有序的,初次之外还有索引,索引是递增有序的,索引是用来指定当前数组中的元素的。

(1):什么是存储相同类型元素?

因为数组存储的数据类型是相同的,数组所存储的内容是相同的。加上索引的有序递增作用,使得数组随机访问的性能特别的高效。

那么数组到底是怎么存储空间的?

(蓝色为已用的存储空间,黄色为空闲存储空间)

例:将[5,8,4,6,9]存储在内存空间中,如图所示,因此时的内存的存储空间有连续的五个空间,因此数组将有序的存储在五个空间中。

假设现在的存储空间为:

一眼可以看出来,是没有连续的五个存储空间,所以是现该数组是无法存储在空间中的。

由此可以看出,在创建数组的过程中,它是比较吃内存的,吃内存的原因是在存储的空间的过程中是必需要相应连续的存储空间。一定要确保连续存储空间的个数要大于元素的个数。

二、什么是相同类型元素?(为什么要相同元素类型?)

相同元素类型元素换句话来说就是内存的宽带是一致的。

 

 因为数组是应用堆里面的地址,比如0x1101,况且又知道索引是递增有序的,而且是从0开始的。

(1):为什么索引是从0开始的?

 

在创建数组时,我们在创建一个对象arrs存储的是数组的引用(在java中,c语言指的是指针),其引用的其实是0索引元素的地址。因元素类型的相同,导致内存宽度的一致,所以可以得出:

元素的地址 = 首元素的地址 + (索引+元素宽度)

因arrs存储的是 索引元素的地址,当我们首元素的索引为0时,其计算元素的地址会变得十分简单。

所以由于存储的相同类型,由于有序的索引,数组的随机访问性能才会那么的高效!

总而言之,数组是通过连续的存储空间,存储相同类型元素的集合。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值