1.为什么要有数组?
有大量相同类型元素需要处理----数组、集合(List、Set、Map)
2.概念
数组是存储同一种数据类型多个元素的集合。也可以看成是一个容器
1)既可以存放基本数据类型元素,也可以存放引用数据类型元素
2)数组本身是引用数据类型
3)初始化之后长度不可改变
3.数组的定义
数据类型[] 数组名;
int[] array = new int[5];
数据类型 数组名[];
int array[] = new int[5];
4.数组的初始化
1)静态初始化---初始化时指定每个数组元素的初始值,由系统决定数组长度
int[] arr = new int[]{1, 2, 3};
int[] arr = {1, 2, 3};
2)动态初始化---初始化时只指定数组长度,由系统为数组分配初始值
int[] arr = new int[5];
动态初始化,系统为每个元素指定初始值
基本数据类型
|-byte 0
|-short 0
|-int 0
|-long 0
|-double 0.0
|-float 0.0
|-boolean false
|-char 0
引用数据类型----null //面向对象---面向过程
|-String null
3)数组的长度---数组名.length;
4)访问数组中的元素
数组名[下标]
下标的范围 0~数组的长度-1
5.常见问题
ArrayIndexOutOfBoundsException--下标越界异常
NullPointerException--空指针异常
6.数组常见操作
1)遍历
for (String string : args) {
System.out.println(string);
}
2)求最值
3)逆序
7.数组一旦初始化,长度不可改变
原因:Java的内存控制是由栈和堆构成的,数组的引用类型放在栈中,栈里装着数组在堆内的内存地址。(类似C语言中的指针)改变数组长度其实是直接建了一个新的堆。而旧的堆会被Java的内存回收机制给销毁。