Java 实例化空数组的最佳符号?

Java 实例化空数组的最佳符号?,java,arrays,Java,Arrays,要实例化空数组,以下两种符号中哪一种是最好的: Object[]emptyArray=新对象[]{} Object[]emptyArray=新对象[0] 对于编译器,它们是否完全相同?一个看起来比另一个清晰吗 我只是出于好奇问:我很清楚这对我的计划没有影响 对于编译器,它们是否完全相同 对。它们都产生相同的字节码: Object[] emptyArray = new Object[] {}; 0: iconst_0 1: anewarray #3

要实例化空数组,以下两种符号中哪一种是最好的:

  • Object[]emptyArray=新对象[]{}
  • Object[]emptyArray=新对象[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
    
    一个看起来比另一个清晰吗

    这可能是离题了,因为它会导致没完没了的讨论:)


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

    第二个让你获得两个宝贵的字节,其目的可能更清楚。为什么你需要空数组?@NikolayKuznetsov有许多合法的情况,你从一个空数组开始,然后再增长。第二个更清楚:为了避免NPE。。。例如
    File[]listFiles()
    方法。