-1

要实例化一个空数组,这两种表示法中的哪一种是最好的:

  1. Object[] emptyArray = new Object[] {};
  2. Object[] emptyArray = new Object[0];

它们对于编译器是否完全相同?一个看起来比另一个更清晰吗?

我只是出于好奇而问:我很清楚它不会对我的程序产生影响

4

1 回答 1

2

它们对于编译器是否完全相同?

是的。它们都产生相同的字节码:

Object[] emptyArray = new Object[] {};

   0: iconst_0
   1: anewarray     #3                  // class java/lang/Object
   4: astore_1

Object[] emptyArray1 = new Object[0];

   5: iconst_0
   6: anewarray     #3                  // class java/lang/Object
   9: astore_2

  10: return

一个看起来比另一个更清晰吗?

这可能与 SO 无关,因为它可能导致无休止的讨论 :)

我会说new Object[0];更容易阅读,但其他人可能会反对。

于 2013-03-21T14:33:39.573 回答