Java中长度为0的数组与null的区别
2014-10-16 22:00
363 查看
(无论使用哪种类型的数组,数组标识符其实只是一个引用,指向在堆中创建的一个真实对象 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, 但是人家问你你们的孩子几个月了, 你肯定是回答不出来,因为你老婆还没怀上,所以是空的
有如下两个变量定义:
1 int[] zero = new int[0];
2 int[] nil = null;
这两种定义有什么区别呢?
zero是一个长度为0的数组,我们称之为“空数组”,空数组也是一个对象,只是包含元素个数为0。
nil是一个数组类型的空引用。
假设一个方法返回一个数组,如果它返回null,则调用方法必须先判断是否返回null,才能对放回数组进一步处理,而如果返回空数组,则无须null引用检查。鉴于此,返回数组的方法在没有结果时我们通常返回空数组,而不是null,这样做对于函数调用者的处理比较方便。
附:
为什么定义个数组a,然后用a.length<1,就报出nullpointerexception的错;只是定义了一个数组,没有实例化话,就像是你和你老婆想要一个孩子之前你就为孩子取好了一个名字也就是 a, 但是人家问你你们的孩子几个月了, 你肯定是回答不出来,因为你老婆还没怀上,所以是空的
相关文章推荐
- Java中长度为0的数组与null的区别
- Java中长度为0的数组与null的区别
- Java中长度为0的数组与null的区别
- Java中长度为0的数组与null的区别
- Java中长度为0的数组与null的区别
- java 代码细节(返回零长度的数组或者集合,而不是null)
- java中数组为空和数组长度为0的区别
- Java中应该返回零长度数组或空集合,而不是返回null(转)
- 高效Java第四十三条返回零长度的数组或集合,而不是null
- Effective Java 之-----返回零长度的数组或集合而不是null
- 数组长度为0和数组为null的区别
- java中数组长度为零和为空的区别
- 数组长度为零和空引用的区别 files!=null&files.length()>0 空指针或赋空值
- Java中数组为空和数组长度为0的区别
- JAVA 长度为0的数组和 null
- 2015062808 - EffactiveJava笔记 - 第43条 返回零长度的数组或者集合,而非null
- Java 返回零长度数组或集合,而不是返回null
- Effective Java之返回零长度的数组或者集合,而不是null(四十三)
- java 一个int数组 长度为100 随机生成100个数 即1-100 将其插入进数组 插入的数字不能重复
- 返回零长度的数组或集合,而不是null