java基本语法(二维数组的内存解析及基本操作)
1.默认初始值的情况
public static void main(String[] args) { // java基本语法(二维数组的内存解析) // 下一行代码声明了外层数组,同时也声明了外层数组对应的一位数组有多少个值,内存解析见图1 int[][] a = new int[4][3]; // 外层数据为a[0]、a[1]、a[2]、a[3] // 内层数据为a[0][0]、a[0][1]等 System.out.println(a[0]);//输出一位数组的地址:[I@15db9742 System.out.println(a[0][0]);//输出默认值:0 // 内存解析见图2 int[][] b = new int[4][]; System.out.println(b[0]);//输出null,引用数据类型的的默认初始值 // System.out.println(b[0][0]);//报错,本行无值和空间 int[][] c; // System.out.println(c[0]);没有初始化,则会报错 }
对应的内存解析图,图一:
对应的内存解析图,图二:
2.基本操作
public static void main(String[] args) { // 二维数组的基本操作 // 两种初始化操作 int[][] a = new int[][] {{1,2,3},{1},{2,3},{1,2,34,5}}; int[][] b = {{0,1,5},{0,12,5,6},{0,9}}; // 查看元素 System.out.println("b[0] = " + b[0]);//b[0]是一位数组的地址值 System.out.println("b[0][0] = " + b[0][0]); // 获取数据长度 System.out.println("a的行数 = " + a.length);//a的行数 System.out.println("第0行的列数 = " + a[0].length);//第0行的列数 // 遍历数组 for(int i = 0;i < a.length;i++) { for(int j = 0;j < a[i].length;j++) { System.out.print(a[i][j] + " "); } System.out.println(" "); } }