Array数组:
定义:
相同数据类型的有序集合
与变量的区别:
变量: 存储单个数据
数组: 存储多个数据
数组的特点:
1.数组是引用数据类型
2.数组是定长的,长度一旦确定不可改变
3.数组中所有数据的数据类型保持一致
4.数组中的数据存在顺序( 索引:从0开始 ) 0 到 length-1
数组的声明方式:
数据类型[ ] 数组名;
数据类型 数组名[ ]; ------不推荐使用
数据类型:可以是基本数据类型||引用数据类型
数据类型的作用:规定数组中所有数据的数据类型
//main方法示例
public static void main(String[] args) {
}
public static void main(String args[]) {
}
数组初始化:
动态初始化:先创建后赋值
数据类型[ ] 数组名 = new 数据类型[ 长度 ];
int[] array = new int[5];
数组中的数据如果不赋值有默认值
String–null,int–0,double–0.0 ,char–’ ',boolean–false
静态初始化:创建的同时赋值
数据类型[ ] 数组名 = new 数据类型[ ]{ 值1 , 值2, 值3 …};
数据类型[ ] 数组名 = { 值1 , 值2 , 值3 … }; ------推荐
int[] arr1 = new int[] { 1, 2, 3 };
int[] arr2 = { 1, 2, 3, 4, 5 };
操作数组中的数据
通过索引操作 数组名[索引]
数组的引用保存在栈内存中,在堆内存中开辟一片空间(连续的),然后栈内存上的引用指向这片空间的首地址。
数组的长度:
数组中最后一个数据的下标:
数组名.length-1
数组的遍历: ★★
1.普通for循环,可以获取可以修改,因为是操作索引(位置)
2.增强for循环|for…each ,只能获取每一个数据,不能修改
for(数据类型 变量名: 数组名||容器名){
变量------指代数组中的每一个数据
}
// for 循环 遍历
for (int i = 0; i < arr2.length; i++) {
System.out.println(arr2[i]);
}
// for each 增强for循环遍历
for (int j : arr2) {
System.out.println(j);
}
使用数组时常见的异常:
1.NullPointerException 空指针异常
对象指向为null,根据这个对象做一些操作,可能对出现空指针
2.ArrayIndexOutOfBoundsException 数组索引越界异常
索引为负数
索引超出最大范围