有什么区别
type[] a = new type[0];
和
type[] a = null;
这两种形式都占用内存吗?有什么相同点/不同点吗?
最佳答案
第一个(new type[0]
)实际上会创建一个数组对象(因此占用内存)。您可以使用(大小为 0 的)数组对象,例如获取其长度或对其进行迭代,但当然,您可以不访问其任何元素。因此,您可以将它传递给任何不对数组长度做出假设(而是进行适当检查)的函数,并且它会起作用。
第二个 (null
) 不创建任何对象。如果您尝试访问任何成员,您将得到一个异常(exception)。
关于java - new type[0] 和 null 之间的区别 - java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31022272/