认真理解,反复练习
定义:存放同一种数据类型元素的集合,也可以看作是一个容器。
(1)元素的数据类型一致,可以存放基本数据类型,也可以存放引用数据类型。 (2)数组的长度是固定的。
(1)数据类型[] 数组名; (推荐使用第一种) (2)数据类型 数组名[];
(1)动态初始化:在定义时候只给定数组的长度,值是由系统默认给出的。 语句定义格式: 数据类型[] 数组名 = new 数据类型[元素的个数]; 举例:int[] arr = new int[3]; 表示的是定义一个长度为3并且元素是int类型的一维数组。 (2)静态初始化:在定义的时候,就手动给出元素值。 语句定义格式:数据类型[] 数组名 = new 数据类型[]{元素值1,元素值2...}; 简化格式:数据类型[] 数组名 = {元素值1,元素值2...};
(1)获取的长度的属性:length 使用格式:数组名.length
元素是由一维数组组成的数组
(1)定义格式一: 数据类型[][] 数组名 = new 数据类型[m][n]; m:表示的是有多少个一维数组 n:表示的一维数组的元素个数 举例:int[][] arr = new int[3][2]; 表示的是定义一个有3个长度为2的一维数组组成的二维数组。 (2)定义格式二: 数据类型[][] 数组名 = new 数据类型[m][]; m:表示的是有多少个一维数组 举例:int[][] arr = new int[4][]; (3)定义格式三: 数据类型[][] 变量名 = new 数据类型[][]{{元素…},{元素…},{元素…}}; 举例:int[][] arr = new int[][]{{1,2},{3,4,5},{1,2,34,5}}; 简化版格式: 数据类型[][] 变量名 = {{元素…},{元素…},{元素…}}; 举例:int[][] arr = {{1,2},{3,4,5},{1,2,34,5}}; 表示的是:二维数组arr中有三个一维数组,分别是{1,2},{3,4,5},{1,2,34,5}
注意: 1、以下几种写法也是二维数组 数据类型[] 数组名[]; 数据类型 数组名[][]; 2、格式3不能与格式1、格式2混合使用。 错误格式:int[][] arr = new int[2][]{{1,2},{3,1,2}};
需要掌握二维数组的遍历方式,结合着一维数组遍历方式去看
package com.shujia.wxl.day06; /* 二维数组遍历 数加科技 十三期 小王,小李 十四期 小明,小刘,小张 十五期 小虎,小宇,小旺,小凯 十六期 小火,小杨,小爱,小周 */ public class Array2Demo4 { public static void main(String[] args) { //定义一个二维数组表示是一个数加科技 String[][] shujia = {{"小王", "小李"}, {"小明", "小刘", "小张"}, {"小虎", "小宇", "小旺", "小凯"}, {"小火", "小杨", "小爱", "小周"}}; for (int i = 0; i < shujia.length; i++) { // System.out.println(shujia[i]); //外层循环遍历到的是每一个一维数组 //要想获取每个一维数组中的元素,再进行一次for循环遍历 System.out.println("第" + (i + 1) + "个数组:"); for (int j = 0; j < shujia[i].length; j++) { // System.out.println(shujia[i][j]); if (j == shujia[i].length - 1) { System.out.print(shujia[i][j] + "]"); } else if (j == 0) { System.out.print("[" + shujia[i][j] + ","); } else { System.out.print(shujia[i][j] + ","); } } //每次内循环结束表示打印完一个一维数组,换行 System.out.println(); } } }
1. JVM将内存划分成的5个部分, (1)栈:局部变量和方法的调用 (2)堆:new出来的东西都在堆里面 (3)方法区(面向对象的时候讲解) (4)本地方法区 (5)寄存器
2. 数组动态初始化和惊静态初始化
3.定义两个数组 (1)定义两个数组并赋值 (2)定义两个数组共用一个地址
(1)
(2)
4.二维数组内存图