• ベストアンサー

オブジェクト生成によるメモリ確保

int b; とやるとメモリ上で4バイト、つまりメモリセルが32個が確保されます。 それでは class A というものがあって、 A a=new A(); とオブジェクトを作るとメモリ上には何バイト確保されるのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
noname#49664
noname#49664
回答No.1

これは、そのクラスの内容によります。クラスは、だいたい以下のようなデータで構成されます。 マジックナンバー4バイト マイナーバージョン2バイト メジャーバージョン2バイト 定数プール 最低2バイト(エントリ数情報) アクセスフラグ2バイト this_class 2バイト super_class 2バイト インターフェイス 最低2バイト(個数情報) フィールド 最低2バイト(個数情報) メソッド 最低2バイト(個数情報) 属性リスト 最低2バイト(個数情報) これは、インターフェイス、フィールド、メソッドがすべてない状態です。これにそれらの情報が追加されていきます。ですので、クラスごとに消費するメモリサイズは変わります。

karasu4649
質問者

お礼

大変ためになりました。ありがとうございました。