数组长度为零和空引用的区别 files!=null&files.length()>0 空指针或赋空值

在判断非空的时候 常常用到files!=null&files.length()>0 那么很多人好奇长度等于0不就是空吗
言简意赅的说:

数组初始化为总结为两种:
空指针:数组=null 空嘛,是真的空,连地址都没分配
赋空值:数组={}; 就是没内容,但是有分配空间,长度为0,有地址


public class TestArray {
    public static void main(String[] args) {
//【null初始化 不分配地址】
//使用语句数组必须要 初始化,用null初始化,JVM不会为数组A分配地址
//数组.toString()会返回地址的哈希值;所以A.toString();不存在!
//A.length不存在 !会报错
        String[] A = null;  
//【空白初始化 length=0 但是分配地址】
//所以会有数组的一切特征 B.length=0;  B.toString()=[Ljava.lang.String;@7150bd4d;
        String[] B={};

        System.out.println("A没有地址 所以也没有长度地址属性 只能用来判断是否是空:");
        System.out.println("*** A==null结果为:"+(A==null));
        System.out.println("B没有内容 但是有地址 所以有长度地址属性");
        System.out.println("*** B的长度:"+B.length+"   B的地址:"+B.toString());
    }
}
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值