4

検討:

public SomeClass implements SomeInterface{...}

SomeClass obj = new SomeClass();

SomeInterface x = obj;

行 3 を、メモリ管理に関する非常に基本的な理解に関連付けようとしています。「obj」で表されるメモリ位置には、SomeClass のメモリ位置へのポインタが含まれているだけです。64 ビット JVM を使用していると仮定すると、最大 64 ビットが「obj」ポインターに割り当てられます。JRE が x を実装すると、メモリ内に何が作成されますか? SomeClassへの64ビットポインタですか?

4

3 に答える 3

3

どのように宣言しても、すべてのオブジェクト参照は同じ量のメモリを消費します。

したがってx、 とobjは 2 つの異なる参照であり、たまたま同じものを指しています。

于 2012-12-07T14:53:52.633 に答える
1

単純な文の参照では、宣言されている Java でも同じメモリを使用します。

メモリ割り当てのためのスタックとヒープこれは、メモリ割り当ての詳細を理解するのに役立ちます

ここに画像の説明を入力 動作します。

于 2012-12-07T14:57:06.203 に答える
0

実際のメモリ オーバーヘッドはありませんSomeInterface。この時点での宣言は単なる言語構造であり、x後でコンパイラによるチェックのために入力されます。

于 2012-12-07T14:56:59.447 に答える