数组:具有明确长度及容量的 用于存储某种数据类型变量的 容器
①数组的定义
动态初始化:
数据类型[] 数组名 = new 数据类型[int num]; int num 为具体值 代表数组长度及容量
静态初始化:
数据类型[] 数组名 = new 数据类型[]{多个该数据类型的变量,之间用英文,隔开};
new 数据类型[] 可以省略 系统默认
public class Test {
public static void main(String[] args) {
int[] arr1 = new int[10];
int[] arr2 = new int[]{1, 2, 3, 4, 5};
int[] arr3 = {6, 7, 8, 9, 10};
}
}
②数组的访问
通过索引 注意从0开始 到 数组名.length -1 不在范围内会抛出异常 数组下标越界
如果 arr = null 通过下标访问会抛出异常 空指针异常
public class Test {
public static void main(String[] args) {
int[] arr = new int[]{1, 2, 3, 4, 5, 6, 7, 8, 9};
//arr[num] num 即为索引 从0开始 到数组长度减一
//数组名.length 即为数组长度
System.out.println(arr[0]);//1 arr[0]
System.out.println(arr[8]);//9 arr[arr.length - 1]
//System.out.println(arr[9]);//ArrayIndexOutOfBoundsException
//arr = null;
//System.out.println(arr[0]);//NullPointerException
}
}
③内存空间分析
④多维数组(二维数组) 一维数组内元素还是一维数组
动态初始化 int[][] arr = new int[num1][num2];
静态初始化 int[][] arr = {{1,2,3,4,5},{6},{7,8,9}};
num1表示该二维数组含num1个一维数组
num2 表示每个一维数组长度 num2 并非统一 每个一维数组的长度不固定
int[][] arr1 = new int[3][3];
int[][] arr2 = new int[][]{{1,2,3},{4,5,6},{7,8,9}};
int[][] arr3 = {{1,2,3,4,5},{6},{7,8,9}};
二位数组的访问依旧是通过下标 只不过需要两个中括号内都符合0~长度减一
public class Test {
public static void main(String[] args) {
int[][] arr1 = new int[3][3];
int[][] arr2 = new int[][]{{1,2,3},{4,5,6},{7,8,9}};
int[][] arr3 = {{1,2,3,4,5},{6},{7,8,9}};
arr1[1][1] = 1; //通过下标赋值
System.out.println(arr1[0])//输出的是地址值
System.out.println(arr2[2][2]);
System.out.println(arr3[2][5]);//数组下标越界
}
}