Java中长度为0的数组与null的区别

(无论使用哪种类型的数组,数组标识符其实只是一个引用,指向在堆中创建的一个真实对象  Int[] A =new int[10];new 一下就是实例化了,开辟了内存空间,基本数据类型的元素会被赋初始值,数组建立后长度不能改变,但是还是可以重新赋值)

有如下两个变量定义:

1 int[] zero = new int[0];

2 int[] nil = null

这两种定义有什么区别呢?

 zero是一个长度为0的数组,我们称之为“空数组”,空数组也是一个对象,只是包含元素个数为0。

 nil是一个数组类型的空引用。

 假设一个方法返回一个数组,如果它返回null,则调用方法必须先判断是否返回null,才能对放回数组进一步处理,而如果返回空数组,则无须null引用检查。鉴于此,返回数组的方法在没有结果时我们通常返回空数组,而不是null,这样做对于函数调用者的处理比较方便。

附:

为什么定义个数组a,然后用a.length<1,就报出nullpointerexception的错;只是定义了一个数组,没有实例化话,就像是你和你老婆想要一个孩子之前你就为孩子取好了一个名字也就是 a, 但是人家问你你们的孩子几个月了, 你肯定是回答不出来,因为你老婆还没怀上,所以是空的

原文地址:https://www.cnblogs.com/gaoxiangde/p/4379884.html