これはおそらく尋ねる必要さえありませんが、私はこれについて正しいことを確認したいと思います. Java で任意のオブジェクトの配列を次のように作成する場合:
Object[] objArr = new Object[10];
変数objArr
はスタック メモリ内にあり、配列オブジェクトが配置されているヒープ内の場所を指します。ヒープ内のその配列のサイズは、12 バイトのオブジェクト ヘッダー + 4 (参照サイズによっては 8) バイト * 配列内のエントリ数に等しくなります。これは正確ですか?
それでは、私の質問は次のとおりです。上記の配列は空なので、そのコード行の実行直後にヒープ内で 12 + 4*10 = 52 バイトのメモリを占有しますか? それとも、JVM はインスタンス化する前に配列に何かを入れ始めるまで待機しますか? 配列内のヌル参照はスペースを占有しますか?