Javaの配列

private void test(){
    int a = { 3 , 4 };
    int b = new int[ 2 ];
    b[ 0 ] = 3;
    b[ 1 ] = 4;
}

このプログラムのaとbって、何か違うところあるのかな?


と聞かれたので、さっそく検証

Method void test()
   0 iconst_2
   1 newarray int
   3 dup
   4 iconst_0
   5 iconst_3
   6 iastore
   7 dup
   8 iconst_1
   9 iconst_4
  10 iastore
  11 astore_1
  12 iconst_2
  13 newarray int
  15 astore_2
  16 aload_2
  17 iconst_0
  18 iconst_3
  19 iastore
  20 aload_2
  21 iconst_1
  22 iconst_4
  23 iastore
  24 return

バイトコードはあまり知らないんですけど、newをして代入しているのは同じみたいですね。


つまり(Javaのコードを書く側としては)どちらも同じようです。