- 1、java语言中的数组是一种引用数据类型。不属于基本数据类型。数组的父类是Object。
- 2、数组(一组数据)实际上是一个容器,可以同时容纳多个元素,数组是一个数据的集合。
- 3、数组中可以存储“基本数据类型”的数据,也可以存储“引用数据类型”的数据。
- 4、数组因为是引用类型,使用数组对象是在堆内存当中。
- 5、数组当中如果存储的是“java对象”的话,实际上是对对象的“引用(内存地址)”。
- 6、数组一旦创建,在java中规定,长度不可变。(数组长度不可变)
- 7、数组的分类:一维数组、二维数组、三维数组、多维数组…
- 8、所有的数组对象都有length属性(java自带),用来获取数组中元素的个数。
- 9、java中的数组要求数组中元素的类型统一。
- 10、数组在内存方面存储的时候,数组中的元素内存地址(存储的每一个元素都是有规则的挨着排列的)是连续的。
- 内存地址连续,这是数组存储元素的特点。数组实际上是一种简单的数据结构。
- 11、所有的数组都是拿“第一个小方框的内存地址”作为整个数组对象的内存地址。(数组中首元素的内存地址作为整个数组对象的内存地址)。
- 12、数组中的每一个元素都是有下标的,下标从0开始,以1递增。最后一个元素的下标是:length-1。
- 13、数组的优缺点:
- **优点:查询、查找、检索某个下标上的元素时效率极高。可以说是查询效率最高的一个数据结构。
- **为什么检索效率高:
----每一个元素的内存地址在空间存储上是连续的。
----每一个元素类型相同,所有占用空间大小一样。
----知道第一个元素内存地址,知道每一个元素占用空间的大小,又知道下标, 所以通过数学表达式就可以计算出某个下标上元素的内存地址。 直接通过内存地址定位元素。数组中存储100个元素和存储10000个元。,
-----在查询、检索方面效率是相同的,因为数组中元素查找的时候不会一个一个找,是通过数学表达式计算出来的。 - 缺点:由于为了保证数组中每个元素的内存地址连续,所以在数组上随机删除或增加元素的时候效率较低, 因为随机增删元素会涉及到后面元素统一向前或者后移位的操作。
- ** 为什么数组不能存储大量数据:
----因为很难在内存空间中找到一块特别大的连续的内存空间。 - 注意:对于数组中最后一个元素的增删,是没有效率影响的。
- 14、怎么声明、定义一个一维数组:
-
语法格式:
-
int[] array1;
-
Object[] array2;
- 15、怎么初始化一个一维数组:
-
静态初始化语法格式:
-
int[] array={100,200,300}
-
动态初始化语法格式:
-
int[] array=new int[5];//这里的5表示数组的元素个数,初始化一个5个长度的int类型数组,每个元素默认0.
-
String[] name=new String[6];//初始化6个长度的String类型数组,每个元素默认值null。
public class ArrayTest01 {
public static void main(String[] args){
int[] a={1,2,3,4};
int [] b=new int[4];//创建长度为4的int数组,数组中每个元素的默认值是0
System.out.println("第一个元素:"+a[0]);
System.out.println("最后一个元素:"+a[3]+" or "+a[a.length-1]);
a[1]=9;//修改第二个元素
System.out.println("修改后的第二个元素:"+a[1]);
//遍历数组中的元素
for (int i=0;i<b.length;i++){
System.out.println(b[i]);
}
for (int i=a.length-1;i>=0;i--){
System.out.println("倒序输出:"+a[i]);
}
}
}
运行结果:
第一个元素:1
最后一个元素:4 or 4
修改后的第二个元素:9
0
0
0
0
倒序输出:4
倒序输出:3
倒序输出:9
倒序输出:1