一维数组

  • 当我们需要在java程序中记录多个数据类型相同的数据内容时(而变量是记录单个数据内容的),可以声明一个一维数组,一维数组本质上就是在内存空间中申请一段连续的存储单元,或者理解成是由多个内存地址连续的变量组成。
  • 数组是存储多个数据类型相同的元素的容器,元素按照线性顺序排序,数组是引用数据类型

声明方式

一维数组的声明方式分为两种

  • 动态方式
  • 静态方式

动态方式

按照动态方式声明的一维数组在声明时无法同时初始化每个元素的值,默认值根据数据类型的不同而不同

声明语法如下:

  1. 数据类型[] 数组名称 = new 数据类型[数组长度];
  2. // 如 声明一个长度为2,元素的数据类型是 int 的一维数组
  3. int[] arr = new int[2];

静态方式

声明语法如下:
和动态方式相比,需要填写元素的初始值,不能填写数组的长度,但长度会被自动计算出来

  1. 数据类型[] 数组名称 = new 数据类型[]{初始值1. 初始值2, ...};
  2. // 简化版
  3. 数据类型[] 数组名称 = {初始值1. 初始值2, ...}
  4. // 如 声明一个长度为2,元素的数据类型是 int 的一维数组,并按照线性顺序将元素初始化为 1 和 3
  5. int[] arr = new int[]{1, 3};
  6. int[] arr = {1, 3}; // 简化版

二维数组

二维数组的每个元素都是一个一维数组

声明方式

  • 动态方式
  • 静态方式

动态方式

声明语法如下:

  1. 数据类型[][] 数组名称 = new 数据类型[行数][列数];
  2. // 如声明一个二维数组,共 2 个元素,每个元素都是一个长度为 4 的一维数组,里面的每个数据为 int 类型
  3. int[][] arr = new int[2][4];
  4. // 声明一个不知道每个一维数组中有多少元素的二维数组
  5. int[][] arr = new int[2][]; // 这里并没有指定每个一维数组的元素个数
  6. arr[0] = new int[3]; // 指定元素个数
  7. arr[1] = new int[4];

静态方式

声明语法如下

  1. 数据类型[][] 数组名称 = new 数据类型[][]{{初始值1, 初始值2, ...}, {}, ...};
  2. // 简化版
  3. 数据类型[][] 数组名称 = {{初始值1, 初始值2, ...}, {}, ...};
  4. // 如下
  5. int[][] arr = new int[][]{{1, 2}, {2, 3}};
  6. // 简化版
  7. int[][] arr = {{1, 2}, {2, 3}};

数组中元素的默认值

声明数组时如果没有对里面的元素初始化值,他也会有自己的默认值

  • 数据类型为基本数据类型的元素
    • boolean 默认值为 false
    • float & double 默认值为 0.0
    • byte & short & int & long & char 默认值为 0
  • 数据类型为引用数据类型的元素
    默认值为 null

  1. // 基本数据类型
  2. int[] arr = new int[3]; // 每个元素默认的值是0
  3. boolean[] arr2 = new boolean[3]; // 每个元素默认的值是 false
  4. float[] arr3 = new float[3]; // 每个元素默认的值是 0.0
  5. // 引用数据类型
  6. Collection[] arr4 = new Collection[3]; // 每个元素默认值是 null