1、数组概要
数组是一种引用数据类型,在内存中存储示意图如下:

- 数组是一组数据的集合
 - 数组作为一种引用类型
 - 数组元素的类型可以是基本类型,也可以是引用类型,但同一个数组只能是同一种类型
 - 数组作为对象,数组中的元素作为对象的属性,除此之外数组还包括一个成员属性length,length表示数组的长度
 - 数组的长度在数组对象创建后就确定了,就无法再修改了
 - 数组元素是有下标的,下标从0开始,也就是第一个元素的下标为0,依次类推最后一个元素的下标为n-1,我们可以通过数组的下标来访问数组的元素
 
注意:
1、数组属性
2、数组下标
3、数组越界
4、内存分析
5、空指针
6、数组地址值:debug Object的toString方法
7、数组元素存放空间根据类型判断
8、数组的默认值
2、一维数组的声明和使用
2.1、数组的声明
一维数组的声明格式有以下2种:开发中常用的是前面的一种
数据类型[] 数组名称数据类型 数组名称[]
2.2、数组的创建
数组声明格式,[]可以放在数据类型后面,也可以放在数组名称后面,一般都是放在数据类型后面1、数据类型[] 数组名 = {数值,数值...}; 数值和前面的数据类型要一致2、数据类型[] 数组名 = new 数据类型[]{数值,数值...};数值和前面的数据类型要一致3、数据类型[] 数组名 = new 数据类型[3];
第一种
String[] arr = {"苹果手机","华为手机","小米手机"};===============================================下面的方式不允许String[] arr = null;arr = {"苹果手机","华为手机","小米手机"};
第二种:不推荐使用,和第一种一样
int[] nums = new int[]{10,10,20};
第三种
double[] scores = new double[3];scores[0] = 100D;scores[1] = 200D;scores[2] = 300D;
3、二维数组的声明和使用
| 1 | 2 | 3 | 
|---|---|---|
| 4 | 5 | 6 | 
二维数组属于多维数组,那么什么是多维数组呢,当数组元素的类型是数组时就成了多维数组,二维数组的声明格式如下:
- 数组元素的数据类型[][] 变量名;
 - 数组元素的数据类型 变量名[][];
 
其中方括号的个数就是数组的维数,声明二维数组如下:
    int [][] data;
在这里介绍三种二维数组的创建方式
采用new关键字直接创建
public class ArrayTest05 {public static void main(String[] args) {//声明二维数组int[][] data = new int[2][3];//对二维数组赋值data[0][0] = 1;data[0][1] = 2;data[0][2] = 3;data[1][0] = 4;data[1][1] = 5;data[1][2] = 6;//输出二维数组for (int i=0; i<data.length; i++) {for (int j=0; j<data[i].length; j++) {System.out.println(data[i][j]);}}}}
int[][] data = new int[2][3];

//对二维数组赋值data[0][0] = 1;data[0][1] = 2;data[0][2] = 3;data[1][0] = 4;data[1][1] = 5;data[1][2] = 6;

从高维开始逐维创建
public class ArrayTest06 {public static void main(String[] args) {//从高维开始逐维创建int[][] data = new int[2][];data[0] = new int[2];data[1] = new int[4];data[0][0] = 1;data[0][1] = 2;data[1][0] = 1;data[1][1] = 2;data[1][2] = 3;data[1][3] = 4;//输出二维数组for (int i=0; i<data.length; i++) {for (int j=0; j<data[i].length; j++) {System.out.println(data[i][j]);}}}}
采用初始化语句块创建数组对象
public class ArrayTest07 {public static void main(String[] args) {//静态初始化// 多个数组之间用逗号隔开int[][] data = {{1,2},{1,2,3,4}};for (int i=0; i<data.length; i++) {for (int j=0; j<data[i].length; j++) {System.out.println(data[i][j]);}}}}
