1.Random产生随机数
    /*
     * Random:用于产生随机数
     * 
     * 使用步骤:
     *      A:导包
     *          import java.util.Random;
     *      B:创建对象
     *          Random r = new Random();
     *      C:获取随机数
     *          int number = r.nextInt(10);
     *          获取数据的范围:[0,10) 包括0,不包括10
     */

2.数组的简介&动态初始化的格式

    /*
     * 数组:存储同一种数据类型的多个元素的容器。
     * 
     * 定义格式:
     *      A:数据类型[] 数组名;   (推荐的方式)
     *      B:数据类型 数组名[];
     * 
     *      举例:
     *          int[] arr; 定义了一个int类型的数组,数组名是arr
     *          int arr[]; 定义了一个int类型的变量,变量名是arr数组
     * 
     * 数组初始化:
     *      A:所谓的初始化,就是为数组开辟内存空间,并为数组中的每个元素赋予初始值
     *      B:我们有两种方式可以实现数组的初始化
     *          a:动态初始化 只给出长度,由系统给出初始化值
     *          b:静态初始化 给出初始化值,由系统决定长度
     * 
     * 动态初始化:
     *      数据类型[] 数组名 = new 数据类型[数组长度];
     */

3.数组的静态初始化
    /*
     * 静态初始化的格式:
     *      数据类型[] 数组名 = new 数据类型[]{元素1,元素2,元素3,...};
     * 
     *      举例:
     *          int[] arr = new int[]{1,2,3};
     * 
     *      简化格式:
     *          数据类型[] 数组名 = {元素1,元素2,元素3,...};
     *          int[] arr = {1,2,3};
     */

4.两个常见异常
    /*
     * 两个常见小问题:
     *      ArrayIndexOutOfBoundsException:数组索引越界异常
     *          产生的原因:我们访问了不存在的索引
     * 
     *      NullPointerException:空指针异常
     *          产生的原因:数组已经不在指向堆内存的数据了,你还使用数组名去访问元素
     */

5.二维数组的格式和初始化(理解)

    /*
     * 二维数组:其实就是元素为一维数组的数组。
     * 
     * 定义格式:
     *      A:数据类型[][] 数组名; (推荐的方式)
     *      B:数据类型 数组名[][];
     *      C:数据类型[] 数组名[];
     * 初始化:
     *      A:动态初始化
     *          数据类型[][] 数组名 = new 数据类型[m][n];
     *          m表示的是二维数组中一维数组的个数
     *          n表示的是一维数组中的元素个数
     *      B:静态初始化
     *          数据类型[][] 数组名 = new 数据类型[][]{{元素...},{元素...},{元素...},...};
     *          简化格式:
     *          数据类型[][] 数组名 = {{元素...},{元素...},{元素...},...};
     * 
     * 二维数组名配合索引可以获取到每一个一维数组。
     * 每一个一维数组配合索引名可以获取到数组中的元素。
     * 
     * 假如我有一个二维数组:arr。
     * 我要从中获取一维数组:arr[索引]
     * 我要从中获取二维数组的元素:arr[索引][索引]
     */