5、数组
大约 3 分钟
数组
数组是有序排列的
 数组属于 引用数据类型
 数组的元素既可以是 基本数据类型,也可以是 引用数据类型
 创建数组对象会在内存中开辟一整块 连续 的空间
 数组的 长度一旦确定就不能修改
数组的长度:数组.length
1、一维数组
数组一旦 初始化,其长度就是确定的且不可修改
一维数组的 声明 和 初始化(静态初始化,动态初始化)
public class ArrayTest {
	public static void main(String[] args) {
		int[] a,b,c[];  // 声明了两个一维数组,一个二维数组
    int d[][],e[],f; // 声明了二维数组,一维数组,一个 int
		// 一维数组的声明和初始化
		// 静态初始化:数组的初始化和数组元素的赋值操作同时进行
		int[] ids;
		ids = new int[] { 1001, 1002, 1003, 1004 };
		int[] nums = {1,2,3,4};
		// 动态初始化:数组的初始化和数组元素的赋值操作分开进行
		String[] names = new String[3];
		
		
		// 调用数组指定位置的元素
		names[0] = "a";
		// 获取数组长度
		System.out.println(names.length);
		//一维数组元素的默认初始化值
		/*
		 整型数组:0 
		 浮点型数组:0.0 
		 字符型数组:0 (不是 '0')
		 boolean数组:false 
		 String数组(引用类型):null
		 */
		int[] arr = new int[3];
		for (int i = 0; i < arr.length; i++) {
			System.out.println(arr[i]);
		}
	}
}
相关信息
- 关于 char 数组的输出:char[] test = {'a','b'}; System.out.println(test); // ab System.out.println("" + test); // 地址值
- 数组复制:
 Stream.arraycopy()
 Arrays.copyOf()
 Arrays.copyOfRane()
内存的简化结构:
一维数组内存实例:
2、多维数组
静态初始化,动态初始化
相关信息
二维数组 第一个 数必须有
二维数组初始化
静态初始化: int[][] arr1 = new int[][]{{1,2,3},{4,5}};  (a[0].length 等于 3,a[1].length 等于 2)
 动态初始化:String[][] str2 = new String[3][];String[][] str1 = new String[3][2];int[] arr2[] = new int[3][2]; 
		//二维数组的调用
		System.out.println(arr1[0][1]);
		
		//对二维数组中每个一维数组初始化
		arr2[1] = new int[4];
		
		
		//二维数组初始化
		int[][] arr0 = new int[3][4];
		double[][] arra = new double[3][];
		System.out.println(arr0);//地址值
		System.out.println(arr0[0]);//地址值
		System.out.println(arr0[0][0]);//0
		System.out.println(arra[0]);//null 引用数据类型默认值null
		System.out.println(arra[0][0]);//报错,空指针异常
相关信息
关于二维数组初始化默认值:int[][] arr = new int[4][3];
- 外层元素的初始化值为:地址值
- 内层元素的初始化值为:与一维数组初始化值相同
int[][] arr = new int[4][0];
- 外层元素的初始化值为:null
- 内层元素的初始化值为:不能调用,报错。
二维数组的内存解析

相关信息
数组末尾元素的下标是arr.length-1
相关信息
数组的复制:
//不能直接 arr = arr2 赋值地址,本质为一个
int arr2 = new int[arr.length];
//for循环对每一个赋值
3、Arrays 工具类
java.util.Arrays 类为操作数组的工具类,包含了操作数组的各种方法(包括排序,查找等)。

4、数组中的常见异常
- 索引越界:ArrayIndexOutOfBoundException
- 空指针异常:NullPointerException
对于 int arr[4][];
- 调用 arr[0]结果为 null
- 调用 arr[0][0]空指针异常
 Powered by  Waline  v2.15.5