我正在攻读OCA程序员I Oracle认证,因此我正在审查考试中可能出现的所有棘手问题。 一个就是这个:
int [] zero = new int[0];
这样的数组在构造函数中声明为0,在堆中实际执行什么操作?创建参考什么? 我已经试过看它是否给出null,但它没有。 (零!= null)通过测试。
你知道吗?提前谢谢。答案 0 :(得分:5)
零长度数组仍然是一个数组,内存将分配给该数组。
答案 1 :(得分:3)
堆中实际会做什么?
零长度的int数组。
创建对什么的引用?
对零长度int数组的引用。
我已经尝试过查看它是否为null而且它不是
为什么要这样?
答案 2 :(得分:1)
Java中的数组是对象。例如,它具有“长度”变量。以及相关数据。因此,即使您创建0大小的数组,只有数据部分的大小为零。数组对象的其他部分仍然存在。