2017-03-25 13 views
0

Java OCA試験のために勉強していて、問題が発生しました。次のコードでは、作成されるオブジェクトの数はいくつですか?本の作者は5と言っていますが、私は3と言います。なぜ3ですか?数十種類のオブジェクトが2つ作成され、3番目のオブジェクトが配列そのものであるためです。残りの配列要素はnullなので、私は参照のみを作成しますが、私の意見ではオブジェクトは作成しません。私は2回印刷するコンストラクタでプリントを追加しました。私が紛失しているか、本に記載されている答えが間違っていますか?前もって感謝します。アレイを開始するときに作成されるオブジェクトの数 - Java

class Dozens { 
    int[] dz = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12}; 

    public Dozens(){ 
     System.out.println("Object created"); 
    } 
    public static void main(String[] args) { 
     Dozens[] da = new Dozens[3]; 
     da[0] = new Dozens(); 
     Dozens d = new Dozens(); 
     da[1] = d; 
     d = null; 
     da[1] = null; 
     // do stuff 
     System.out.println(da[2] instanceof Object); 
    } 
} 

答えて

3

5つのオブジェクトは、mainメソッドの実行によって明示的に作成されます。

  • Dozens[]オブジェクト
  • Dozensオブジェクト
  • int[]
  • 二つのオブジェクト。 dzフィールドを参照してください。また

、いくつかのオブジェクトprintlnコール(S)によって背後で作成することができます。

0

12個のオブジェクトには配列フィールドがあるため、12個のオブジェクトが作成されるたびに2つのオブジェクトが作成されます。

関連する問題