new type [0]和null之间的区别 - java

时间:2015-06-24 09:05:37

标签: java arrays null

之间有什么区别
type[] a = new type[0];

type[] a = null;

这两种形式都会占用任何记忆吗?有任何相似之处/不同之处吗?

2 个答案:

答案 0 :(得分:8)

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

第二个(null)不会创建任何对象。如果您尝试访问任何成员,您将获得例外。

答案 1 :(得分:-1)

创建对象需要3个步骤。

  1. Decleration A型[]; - >一个贬值。 声明对象时,不会为实例占用任何内存,而是占用一些内存供参考。

  2. 实例化 为此,您需要“新”关键字。 实例化对象时,会占用内存。

  3. 初始化 要做到这一点,你需要构造函数, 喜欢 - > type A [] = new A [size]; 就是这样。