新int [] {}或只是{} [重复]之间的区别

问题描述 投票:0回答:1

这两行代码之间是否存在显着差异?

int[] array = new int[]{1,2,3}
int[] array = {1,2,3}

如果我不得不猜测,在第二个版本中隐式调用相同的构造函数,使它们相同。

编辑:This question was explored previously here but with default values.我的问题是使用非默认值初始化数组。

java arrays constructor
1个回答
2
投票

出于好奇,我用以下方法对类进行了反编译

public void arrayTest1(){
    int[] array = new int[]{1,2,3};
}

public void arrayTest2(){
    int[] array = {1,2,3};  
}

这是与他们相关的结果。

  public void arrayTest1();
    Code:
       0: iconst_3
       1: newarray       int
       3: dup
       4: iconst_0
       5: iconst_1
       6: iastore
       7: dup
       8: iconst_1
       9: iconst_2
      10: iastore
      11: dup
      12: iconst_2
      13: iconst_3
      14: iastore
      15: astore_1
      16: return

  public void arrayTest2();
    Code:
       0: iconst_3
       1: newarray       int
       3: dup
       4: iconst_0
       5: iconst_1
       6: iastore
       7: dup
       8: iconst_1
       9: iconst_2
      10: iastore
      11: dup
      12: iconst_2
      13: iconst_3
      14: iastore
      15: astore_1
      16: return

这两个语句基本上看起来都是相同的解编译。

© www.soinside.com 2019 - 2024. All rights reserved.