5

Java で参照変数がどのように実装されているかについての説明を探しているときに、この質問に出くわしました: Java の参照変数の内部は何ですか? Samuel_xL によるコメントでは、ベンダー名を指定する方が適切な質問であるというコメントがありました。私の質問は、Oracle JVM でインスタンス変数がどのように実装されているかということです。アドレスへのポインタですか?オブジェクトへのアクセス方法を JVM に指示するビットが参照に保持されていることはわかっています。しかし、それはどのように構成されていますか??

4

1 に答える 1

1

私が判断できたことから、オブジェクト参照は、JVM が圧縮オブジェクト ポインターを使用しているかどうかに応じて、oop(通常のオブジェクト ポインター) またはと呼ばれる型として格納されます。narrowOopAnoopは、Java オブジェクトへのポインターをラップする C++ クラスでありnarrowOop、オブジェクトにアクセスするために適切なポインターに変換する必要がある 32 ビットの符号なし整数です。内部構造はありません。ここで宣言を見つけることができます: http://hg.openjdk.java.net/jdk7/jdk7/hotspot/file/tip/src/share/vm/oops/oopsHierarchy.hpp

于 2013-08-08T20:24:56.933 に答える