2012-03-04 13 views
1
int[] a = new int[]{1,2,3}; 

int[] b = {1,2,3}; 

aとbの違いは何ですか?最初はオブジェクトで、 'a'はリンクで、2番目はプリミティブ型で、 'b'は変数です。しかし、どのような長所と短所が最初の配列を持っていますか?配列宣言の相違点

+1

私は最初はどこでも行うことができると思いますが、2番目の方法は変数を初期化するときだけ行うことができます。つまり、: 'int [] b;' 'b = {1、2、3};は不正ですが、' int b; '' b =新しいint [] {1,2,3}; ' 。 –

答えて

5

初期化のように、それらの間に違いはありません。それらは同じバイトコードをもたらす。しかし、あなたが割り当てで最初の形式を使用する必要があることに注意してください:

int[] b; 
b = {1,2,3}; // <== Syntax error 

は、私が最初のオブジェクトであり、「」のリンクであり、第二は、プリミティブ型とB」である右のことをアム'は変数ですか?配列へ参照です

いいえ、両方のケースでは、あなたが変数(ab)を持っています。