数组  

1、定义

  • 相同数据类型的有序集合

  • 其中,每一个数据称作为一个数组元素,每个数组元素可以通过一个下标来访问他们

2、数组的声明、创建、初始化

2.1、声明

  • 语法:

    • 数组类型[] 数组名;(首选)

    • 数组类型 数组名[];

    //示例
    int[] intNums;

    double doubleNums[];

2.2、创建

  • 使用new操作符创建数组

  • 语法:数组类型[] 数组名 = new 数组类型[数组长度];

    //示例
    int[] intNums = new int[8];

2.3、初始化

  • 默认初始化

    • 数组是引用类型,一经创建,也就是分配空间后,其中的每个元素会被隐式地初始化,有默认值

  • 静态初始化

    • 语法:数组类型[] 数组名 = {数组元素,数组元素,数组元素......};

      //基本数据类型数组
      int[] intNums = {1,2,3};

      //Dog类
      public class Dog {
         String name;

         public Dog(String name) {
             this.name = name;
        }
      }
      //引用类型数组
      Dog[] dogs = {new Dog("豆包"),new Dog("旺财")};
  • 动态初始化

    • 语法:

      • 数组类型[] 数组名 = new 数组类型[数组长度];

      • 数组名[下标索引] = 值;

      int[] intNums = new int[3];
      intNums[0] = 1;
      intNums[1] = 2;
      intNums[2] = 3;

2.4、从内存分析数组声明、创建、初始化的过程

  • 简单认识Java内存

    • 堆内存

      • 存放new的对象和数组

      • 可以被所有的线程共享

    • 栈内存

      • 存放基本变量类型(会包含这个基本对象类型的数值)

      • 引用对象的变量(会存放这个变量存放在堆内存的地址)

    • 方法区

      • 包含了所有的class和static变量

      • 可以被所有的线程共享

  • 过程画图分析如下