学习Java的第八天:数组

第一部分:数组的定义和方向

1.1、容器

    //定义了一个int变量num,并初始化
    //一个变量num,只能存储一个数据
    int num = 10;
    System.out.println(num);
    
    // 新的数据进来,赋值给了num,原来的数据将被替换
    num = 20;
    System.println(num);// 20
    
    --> 变量中只能存储一个数据。新的数据进来之后,老的数据将被替换
            如果需要存储多个数据的话,我们需要使用容器
    容器的概念:
        容器:是将多个数据存储到一起,每个数据我们都称之为元素

1.2 数组变量的定义

    1.数组变量定义格式一:

        数据类型[]数组名称;    ----建议使用----

    2.数组变量定义格式二:

        数组类型 数组名称[];

1.3 数组的第一种初始化方式

    数组的第一种初始化方式(动态的初始化:指定数组的长度)

        1.格式:

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

int [] array = new int[5]    //[5]代表的时长度

        2.格式解释:

            (1)左侧数据类型:规定了数组中可以存储哪种数据的数据
            (2)左侧[]:表示数组的意思
            (3)数组名称:就是给数组起个名字(相当于门牌号),方便找到并使用数组
            (4)=:赋值的意思,把=右侧new出来的数组容器,存储到=左边的数组名称中
                    但是存储的是数组在内存空间中的地址值
            (5)new: 创建数组容器的过程
            (6)右侧数据类型:和左侧保持一致,开辟连的同类型的空间
            (7)右侧[]中的长度:是一个int类型的数字,表示数组中可以存储数据的数量,

                     也叫做数组长度

1.5 数组的第三种初始化方式

    数组的第三种初始化方式(简化版静态初始化:指定数组中的每个元素)

        1、格式:

            数据类型[] 数组名称 = {元素1、元素2、元素3、... ...元素n};          

        2、注意:

            (1)右侧不用写长度,JVM会根据{}中数组的元素数量推导出长度
            (2)虽然没有写new,底层仍然有new的过程
            (3)动态初始化和标准格式的静态初始化,可以分为两步完成
            (4)简化版静态初始化,不能分成两步完成

int[] array1;
array1 = new int[5];

int[] array2;
array2 = new int[]{10,20,30};

int[] array3;
array3 ={100,200,300}; // 这是错误的,简化版静态初始化,不能分成两步完成

第二部分: 数组操作的常见问题

3.1 数组越界异常

    数组操作的常见问题一:
        数组索引越界(超出了范围)异常
            1.问题描述: java.lang.ArrayIndexOutOfBoundsException类
                数组索引越界异常
            2.产生的原因:
                使用索引编号范围数组元素时,给出的索引编号不存在(超出了范围)
                索引编号范围:最小值:0,最大值时数组长度 减1
            3.解决方案:
                根据控制台的打印信息,找到出现问题的索引,进行修改
                Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException:
                    Index 5 out of bounds for length 3
                        at com.donglan.demo.Demo08ArayProblem.main(Demo08ArayProblem.java:15)

3.2 数组空指针异常

    数组操作的异常问题二:
        空指针异常
            1.问题描述:java.lang.NullPointerException
            2.产生的原因:    
                null是一个引用类型的常量,可以给任意类型引用变量赋值
                当把null赋值给数组变量one后,数组变量one将不再指向堆内存空间的任何数组
                也就不可以通过one再访问数组元素,只要访问了,就会报出空指针异常
            3.解决方案:
                (1)不要通过值为null的数组变量,访问数组元素
                (2)根据控制台的打印信息,找到数组变量时null的地方进行修改
                        让数组变量指向一个堆内存空间的数组,就可以正常访问数组的元素了

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值