2013-03-21 53 views
-1

实例化一个空数组,这两个符号之一,是最好的:实例化一个空数组的最佳表示法?

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

他们是完全相同的编译器一样吗?一个人看起来比另一个更清楚吗?

我只是问了好奇:我很清楚它会对我的计划没有影响

+0

第二个可以让你获得两个宝贵的字节,其意图可能更清晰。 – 2013-03-21 14:31:33

+3

你为什么需要空阵列? – 2013-03-21 14:31:44

+0

@NikolayKuznetsov有许多合法的情况下,你从一个后来增长的空数组开始。 – 2013-03-21 14:32:18

回答

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 

是否会出现一个比另一个更清晰?

那很可能是题外话上下去,因为它可能会导致无休止的讨论:)

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