一.什么是数组
1.是可以 一次性声明大量的存储空间用来存储数据的变量
2. 要存储的数据通常都是同类型数据
3数组中的元素是被存储在一段连续的内存空间中
二.数组的格式
格式:数据类型 [ ] 变量名
数据类型包括int、double、boolean、char、String
三.数组的初始化
数组的初始化分为:动态初始化和静态初始化
Java中的数组必须先初始化,然后才能使用
初始化:就是为数组中的数组元素分配内存空间,并为每个数组元素赋默认值
整数:默认值0
浮点数:默认值0.0
布尔值:默认值false
字符:默认值是空字符
引用数据类型:默认值是null
动态初始化
格式:数据类型 [ ] 变量名 = new 数据类型[数组长度];
静态初始化
格式:数据类型 [ ] 变量名= new 数据类型[ ]{数值1,数值2,...数值n};
简化后格式:数据类中[ ] 变量名 = {具体数据内容};
注意:
采用动态初始化,计算机会给出默认值
访问数组元素的方式
格式:数组名[索引]
注意:
1:索引是指下标,下标从0开始一直到数组长度-1
2:索引是连续的
3:索引逐一增加,每次加1
数组内存分析

栈内存:存储局部变量定义在方法中的变量,例如:strs
使用完毕,立即消失
堆内存:存储new出来的内容(实体,对象)数组在初始化时,会为存储空间添加默认值
整数:0
浮点数:0.0
布尔:false
字符:空字符
引用数据类型:null
每一个new出来的东西都有一个地址值
使用完毕,会在垃圾回收器空闲时被回收
在采用动态初始化,将会给数组赋默认值
而当改变数组中某个位置上的值,默认值也将随之更改为所赋得值
当给对象重新定义数组长度,则原数组长度也随之改变,若比原初始的数组长度短,则会丢弃后面的数据,反之,创建新的,赋默认值
数组常见的问题
索引越界
当定义了int[] a =new int [3];
出现了System.out.println(a[3]);即越界
new int[3]是指下标从0开始到2 ps:数组下标0,1,2。可存放三个数
空指针异常
int[] a = new int[3];
System.out.println(a[2]); 这是可以进行输出的
但如果把 null赋值给数组a即 a = null; 则出现空指针
数组常见的操作
一维数组遍历格式
int[] a = new int[3];//定义数组
for(int i = 0; i < a.length; i++){ //遍历数组
System.out.println(a[i]);//输出
}