关键词搜索

源码搜索 ×
×

一篇文章带你搞懂 Java 中数组长度为 0 和数组为 null 的区别

发布2020-11-21浏览1526次

详情内容

编程题中经常遇到,对于数组首先判断:

private static void test(int[] a) {
        if (a == null || a.length==0) {
            return;
        }
    }

    常见的形式有三种:

    语句1int[] a; //只是声明了一个数组变量,并未初始化,无法使用。
    语句2int[] a = null;//声明了一个数组变量,赋值为 null;
    语句3int[] a = new int[0];//声明并创建一个数组对象,长度为0
    
    • 1
    • 2
    • 3

    上面的三个语句,系统占用的内存依次增多。

    语句1,并未初始化,使用会出错:

    在这里插入图片描述
    语句2,虽然初始化,但是一个空指针,没有指向一个有效的数组什么都做不了,无法调用这个对象的方法,会产生空指针异常:

    在这里插入图片描述

    语句3,长度是0,是一个数组对象,只不过没有内容:

    在这里插入图片描述


    所以对于数组,不但要判断它是否为空指针,也需要判断它是否有内容,同时要先判断空指针再判断长度是否为0,顺序不能颠倒,因为空指针没有length属性

    相关技术文章

    点击QQ咨询
    开通会员
    返回顶部
    ×
    微信扫码支付
    微信扫码支付
    确定支付下载
    请使用微信描二维码支付
    ×

    提示信息

    ×

    选择支付方式

    • 微信支付
    • 支付宝付款
    确定支付下载