クラスインデックス(this_class)と親インデックス(super_class)U2は、データのタイプであり、インターフェースインデックスセット(インターフェイス)は、データ型U2の集合である、クラスのクラスファイルが3のデータによって決定されます継承。
- クラスインデックス
クラスの完全修飾名を決定するためのクラスのインデックス。
- 親インデックス
親クラスの完全修飾名を決定するための親のインデックス。
Java言語は多重継承を許可していませんので、そのインデックスは、java.lang.Objectのに加えて、唯一の親です。
すべてのJavaは、親インデックスJavaクラスのすべてがゼロと異なっている、java.lang.Objectのに加えて、親クラスを持っています。
- インターフェイスインデックスセット
インターフェースインデックスセットインタフェースを実装するクラスを記述するために使用され、これらのインタフェースが実装されている文を実装するであろう(クラスがインタフェース自体である場合、句を拡張しなければならない)インターフェースインデックスセット内の左から右へ順番後インターフェイスクラスは、任意のインターフェースを実装していない場合、カウンタはゼロです。
クラスインデックス、インデックス設定されたインデックス親クラス・インターフェースが順次アクセスフラグの後に配置されており、インデックスの親クラスインデックス
指標値の二つのタイプは、多くの場合、クラスの型記述子を指す各々は、U2を表しCONSTANT_Class_info
量は、指標値CONSTANT_Class_infoタイプによって定義された定数は、に見出すことができます
CONSTANT_Utf8_infoタイプ定数完全修飾名の文字列。
ケース
public class TestConstant {
private final int a = 10;
private final int b = 10;
private int c = 11;
private int d = 11;
private long e = -11111110005514L;
private long f = -11111110005514L;
private double g = 10.4557848D;
private double h = 10.4557848D;
private String y = "JVM";
private String j = "JVM";
}
オープンウルトラエディットを使用して、クラスファイルにコンパイルした後、それはJavaのバイトコードをコンパイルすることができます
由此可以得知类索引为0x0011(对应的十进制值为17),父类索引是0x0012(对应的十进制值为18),接口索引0x0000(对应的十进制值为0,则就是没有)。
类索引和父类索引对应了第17和第18个常量池,得出类是TestConstant,父类是Object,(没有显式继承任何类,默认是继承Object父类)。