版本:JDK1.8
注:观看尚硅谷视频的复习笔记
一、数组的概述
1、是多个相同类型数据按一定顺序排列的集合
2、数组是引用数据类型
3、创建数组对象会在内存中开辟一块连续的内存空间
4、数组的长度一旦确定,就不能修改
二、数组的初始化
1、数组的初始化
//1.静态初始化
int[] ids;//声明
ids = new int[]{1001,1002,1003};//初始化
//2.动态初始化
String[] names = new String[5];
2、数组初始化默认值
byte(0)、short(0)、int(0)、long(0L)、float(0.0f)、double(0.0)、char(0或‘\u0000’)、boolean(false)、引用类型(null)
3、数组的赋值
names[0] = "王明";
names[1] = "王贺";
4、数组的长度
数组名.length
三、数组的内存解析
栈中存数组名指向堆空间中的数组首地址
四、二维数组的使用
1、数组的初始化
//1.静态初始化
int[][] arr = new int[][]{{2,3},{2,4,3},{1,3,4,5,6}};
//2.动态初始化
String[][] names = new String[5][3];
String[][] names2 = new String[5][];
//给names2的第二维赋数组
names2 = new String[4];
//3.类型推断
int[][] arr = {{2,3},{2,4,3},{1,3,4,5,6}};
2、数组长度
arr.length
arr[1].length
3、数组默认值
arr[0];//地址值
arr[0][0];/0
五、数组常见异常
public class ArrayExceptionTest {
public static void main(String[] args) {
int[] arr = new int[]{1,2,3,4,5};
//1. 数组角标越界的异常:ArrayIndexOutOfBoundsExcetion
//情况一:
// for(int i = 0;i <= arr.length;i++){
// System.out.println(arr[i]);
// }
//情况二:
// System.out.println(arr[-2]);
// System.out.println("hello");
//2.空指针异常:NullPointerException
//情况一:
// int[] arr1 = new int[]{1,2,3};
// arr1 = null;
// System.out.println(arr1[0]);
//情况二:
// int[][] arr2 = new int[4][];
// System.out.println(arr2[0][0]);
//情况三:
String[] arr3 = new String[]{"AA","BB","CC"};
arr3[0] = null;
System.out.println(arr3[0].toString());
}
}