0

私は高校で Java のテストを受けました。どうやってそれを解決するかについて私が空白だったので、1つの質問が私を悩ませました。

次の Java コードを検討してください。

interface Pingable {
  public void ping();
}

class Counter implements Pingable {
  int count=0;
  public void ping(){++count;}
  public int val(){return count;}
}

public class Ping {
  public static void main(string args[])
  {
    Counter c=new Counter();
    c.ping();c.ping();
    int v=c.val();
    System.out.println(v);
  }          
}

これを 4 バイト アドレスを持つマシンでネイティブ コードにコンパイルするとします。カウンター オブジェクトのメモリ内のレイアウトの図を描画します。すべての仮想関数テーブルを表示します。

4

2 に答える 2

0

次の上記のコードを 32 ビット OS で実行しようとすると、int も 4 バイトのメモリを使用するため、単純に count を実行すると 4 バイトのメモリが 1 つ消費されます。

于 2013-11-13T12:19:48.960 に答える