要实例化一个空数组,这两种表示法中的哪一种是最好的:
Object[] emptyArray = new Object[] {};
Object[] emptyArray = new Object[0];
它们对于编译器是否完全相同?一个看起来比另一个更清晰吗?
我只是出于好奇而问:我很清楚它不会对我的程序产生影响
它们对于编译器是否完全相同?
是的。它们都产生相同的字节码:
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];
更容易阅读,但其他人可能会反对。