之间有什么区别

type[] a = new type[0];


type[] a = null;

两种形式都不会占用任何内存吗?有什么异同吗?

最佳答案

第一个(new type[0])实际上将创建一个数组对象(并因此占用内存)。例如,可以使用(0大小)数组对象来获取其长度或对其进行迭代,但是,当然,您不能访问其任何元素。因此,您可以将其传递给任何不假设数组长度的函数(但是可以进行适当的检查),并且该函数将起作用。

第二个(null)不创建任何对象。如果您尝试访问任何成员,您将获得一个异常(exception)。

10-07 19:07
查看更多