数组的语法:
1、 Java语言中的数组是一种引用数据类型。不属于基本数据类型。数组的父类是object。
2、 数组是一个容器,可以容纳多个元素。(数组是一个数据的集合。)
3、 数组因为是引用类型,所以数组对象在堆内存当中。
4、 数组当中如果存储的是“Java对象“的话,实际上村塾的是对象的”引用(内存地址)“,数组中不能直接存储“Java对象“。
5、 数组一旦创建,在java中规定长度不可变。
6、 所有的数组对象都有length属性(java自带),用来获取数组中元素的个数。
7、 Java中的数组要求数组中元素的类型统一。
8、 数组在内存里面储存的时候,数组中的元素内存地址(存储的每一个元素都是有规则的挨着排列的)是连续的。内存地址连续是数组存储元素的特色。数组实际上是一种简单的数据结构。
9、 所有的数组都是拿“第1有一个小方框的内存地址(首元素的内存地址)“作为整个数组对象的内存地址。
10、 数组中每一个元素都是有下标的,从0开始递增。下标非常重要,对数组中的元素存取时都需要下标来进行。
数组的优缺点:
优点:查询/查找/检索某个下标上的元素时效率极高。可以说是查询效率最高的一个数据结构。
为什么检索效率高?
第一:每一个元素的内存地址值在空间存储上是连续的。
第二:每一个元素类型相同,所以占用空间大小一样。
第三:知道第一个元素的空间地址值,知道每一个元素占用空间的大小,又知道下标,所以通过数学表达式就可以计算出某个下标上元素的内存地址。直接通过内存地址定位元素,所以数组的检索效率是最高的。
数组中存储100个元素,或者存储100万个元素,在元素查询/检索方面,效率是相同的,因为数组中元素查找的时候不会一个个找,是通过数学表达式计算出来的。(算出一个地址值,直接定位。)
缺点:
第一:由于为了保证数组中每个元素的内存地址连续,所以在数组上随机删除或者增加元素的时候效率较低,因为随机增删元素会涉及到后面元素统一向前或者向后位移的操作。
第二:数组不能存储大量数据,因为很难在内存空间上找到一块特别大的连续的内存空间。
注意:对于数组中最后一个元素的增删,是没有效率影响的。