如果将结果数组赋值给变量,它是否为匿名数组

(我正在攻读
Java助理考试OCJP 7)

一个问题要求选择非法初始化的例子.

其中一个答案是: –

int [] k= new int[2]{5,10};

解释说,在创建匿名数组时,指定数组的大小是非法的.

据我所知,这不是一个匿名数组,因为它被命名为“k”.

调用如下方法: –

operateOnArray(new int[]{5,10});

本来是一个匿名数组的例子,因为它没有被声明.

我可以看到“2”使其成为非法 – 但这并不是匿名的,

有人可以告诉我吗?

最佳答案 嗯……从我所教过的内容(以及我读过的内容)来看,匿名数组的定义是:“没有任何名称的数组,它只是一个用于创建和使用它的数组”.由于它没有任何名称,因此您无法重用该数组.

我为OCJP做准备时最好的参考资料是:

anonymous int array : new int[] { 1, 2, 3, 4};
anonymous String array : new String[] {"one", "two", "three"};
anonymous char array :  new char[] {'a', 'b', 'c');

您可以注意到(并且您已经知道)这些类型的数组同时具有创建和初始化(当您使用new()关键字在同一行中初始化它们而不分配任何变量时,您会以后无法重复使用).

因此,根据您所提到的,当您将数组分配给变量时,即使您创建它并在同一行初始化,也会将其分配给变量,以便以后可以重用它,它不是匿名的,它可以被引用,所以我想知道为什么在“匿名数组”的例子中你会看到类似的东西:

int [] k= new int[2]{5,10};

匿名意味着“名称不知道”,因为数组被分配给名为“k”的变量,所以在您指定的行中不是这种情况.但是,这个显示了匿名数组对象创建的属性,它由引用变量“k”指向,所以如果我们只写“new int [] {1,2,3};”那么这就是如何创建匿名数组对象…

当我准备OCJP 7时,我从这个页面阅读了很多文章,我建议你以后深入学习Java 🙂

参考:http://javarevisited.blogspot.com/2012/01/anonymous-array-example-java-create.html

你可以在那里找到很好的例子和文章:)

点赞