[英]Array of zero length in java
下面的代码
public class Example {
static int[] member;
public static void main(String[] args) {
int[] ic = new int[0];
if (ic == null){
System.out.println("ic is null");
}
System.out.println(ic); // [I@659e0bfd
if(member == null){
System.out.println("member is null");
}
}
}
很明显,不能在零长度数组中添加元素。
如果ic
不为null
, ic
指向什么?
如下图所示, ic
是否指向内存位置659e0bfd
(为空)?
ic指向什么(如果不为null)?
它指向一个零容量的空数组。 数组是引用类型,并且像其他任何引用类型一样为它们分配存储空间。
想象一个数组作为一个盒子。 您可以声明一个具有一定容量的盒子,例如3
int[] x = new int[3];
然后您会看到以下框: [_,_,_]
。 您可以用一些数字填充它
x[1] = 9;
得到[_,9,_]
。 相反,您所做的是声明一个零容量的框
int[] x = new int[0];
得到这个: []
。 并猜测如果尝试向其中添加元素会发生什么? 你不能。
因此,为回答您的问题, ic
指向什么? 您的空(和零容量)框。
ic
表示一个空数组实例。 它不包含任何元素( ic[i]
会抛出ArrayIndexOutOfBoundsException
的每个值i
),但它不是空。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.