Java语言中的数组是一种引用数据类型,不属于基本数据类型。数组的父类是Object。
1、数组实际上是一个容器,可以同时容纳多个元素。(数组是一个数据的集合)
2、数组可以容纳“基本数据类型”,也可以容纳“引用数据类型”。
3、数组因为是引用类型,所以数组对象在堆内存当中。
4、数组当中如果存储的是“Java对象”的话,实际上存储的是对象的“引用(内存地址)”,Java中不能直接存储Java对象。
5、在Java中规定,数组一旦创建,长度不可变。
6、所以数组都有length属性,Java中自带的,用来获取数组中元素的个数。
7,Java中的数组要求数组中元素的类型统一。
8、数组在内存方面存储的时候,数组中的元素的内存地址是连续的,数组实际上是一种简单的数据结构。
9、所有的数组都是拿“第一个小方框的内存地址”作为整个数组对象的内存地址。(数组中首元素的内存地址作为整个数组对象的内存地址)
10、数组这种数据结构的优缺点:
* 优点:查询某个下标上的元素时效率极高
* 缺点:
- 由于为了保证数组中每个元素的内存地址连续,所以在数组中随机删除或者增加元素的时候,效率较低。
- 数组不能存储大数据量,因为很难在内存空间上找到一个特别大的连续的内存空间。
注:对于数组中最后一个元素的增删,是没有效率影响的。
11、怎么声明/定义一个数组:
语法格式:
int[] a;
12、怎么初始化一个一维数组?
包括两种方式:静态初始化一维数组,动态初始化一维数组。
静态:
int[] a = {1, 2, 3, 4, 5, 6};
动态:
int[] b = new int[6];
13、当你创建数组的时候,确定数组中存储哪些具体的元素时,采用静态初始化方式。
当你创建数组的时候,不确定数组中存储哪些具体的元素时,采用动态初始化方式,预先分配内存空间。
14、main方法里的 String[] args 是一个数组,是留给用户的,用户可以在控制台上输入参数,整个参数会自动转换成“String[] args”类型。( String[] args 数组主要是用来接收用户输入参数的)
以下代码加深理解:
public class Test4 {
public static void main(String[] args) {
//静态创建一个数组
int[] a = {1, 2, 3, 4, 5, 6};
//取(读)
System.out.println("第一个元素为:" + a[0]);
System.out.println("最后一个个元素为:" + a[a.length - 1]);
//存(改)
a[0] = 10;
a[a.length - 1] = 90;
System.out.println("第一个元素为:" + a[0]);
System.out.println("最后一个个元素为:" + a[a.length - 1]);
//数组遍历
System.out.println("颠倒顺序输出为:");
for(int i = a.length - 1;i >= 0;i--){
System.out.print(a[i]);
}
//动态创建一个数组
int[] b = new int[6];
System.out.println("\n" + "顺序输出为:");
for(int i = 0;i < b.length;i++){
System.out.print(b[i]);
}
//存储Object,采用静态输出
Object o1 = new Object();
Object o2 = new Object();
Object o3 = new Object();
Object[] o = {o1,o2,o3};
System.out.println("\n");
for(int i = 0;i < o.length;i++){
System.out.println(o[i]);
}
}
}
输出结果为:
数组的深入在下一篇!!!