このコードスニペットで作成されているどのように多くのオブジェクト

Nemaly Praveenさん:

どのように多くのオブジェクトが、このコードのために作成されますか?

class Main {
  int num;
  public static void gacemarks(Main m)
  {
    m.num += 10;
  }
  public static void main(String[] args) {
    Main m1 = new Main();
    Main m2 = m1;
    Main m3 = new Main();
    m2.num = 60;
    gacemarks(m2);
    System.out.println(m2);
  }
}

答えは2です。しかし、私は3 M1が作成されました、m2は同じオブジェクト立方メートルを意味し、新たに作成され、呼び出しの後、m個のオブジェクトが生成されます。

ティムBiegeleisen:

あなたのコードのコンテキストでは、私は明示的に作成されている参照のみ2つのオブジェクトがした線であり、newオペレータが表示されます。

Main m1 = new Main();
Main m3 = new Main();

ここでは、各ラインで起こっているの内訳は次のとおりです。

Main m1 = new Main();     // create new Main object 'm1'
Main m2 = m1;             // assign 'm2' to reference 'm1' (no new object)
Main m3 = new Main();     // create new Main object 'm3'
m2.num = 60;              // assign a field in 'm2' (no new object)
gacemarks(m2);            // repeatedly increment the 'm2.num' field (no new object)
System.out.println(m2);   // print 'm2' (no new object)

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=119657&siteId=1