之间有什么区别
type[] a = new type[0];
和
type[] a = null;
两种形式都不会占用任何内存吗?有什么异同吗?
最佳答案
第一个(new type[0]
)实际上将创建一个数组对象(并因此占用内存)。例如,可以使用(0大小)数组对象来获取其长度或对其进行迭代,但是,当然,您不能访问其任何元素。因此,您可以将其传递给任何不假设数组长度的函数(但是可以进行适当的检查),并且该函数将起作用。
第二个(null
)不创建任何对象。如果您尝试访问任何成员,您将获得一个异常(exception)。