Javaの対類の能動引用と受動引用について


本論文の研究は主にJavaクラスの能動引用と受動引用であり、以下のように具体的に紹介されている。
ここで紹介しているのは、積極的に引用する5つの場面です。
1、new、get static、putstatic、invokestaticという4つのバイトコードコマンドが発生した場合、クラスは初期化されないと初期化され、オブジェクトを作成し、静的フィールドを読み込みまたは設定し、静的方法を呼び出します。
2、反射
3、サブクラスは初期化前に親タイプを初期化します。
4、mainメソッドを含むクラスは、仮想マシンの起動時に、まずこのクラスを初期化します。
5、jdkの動的言語サポートを使用する場合(不明)
受動参照:

class SuperClass{
  static{
    syso("super init");
  }
public static int value=123;
}
class SubClass extends SuperClass{
  static{
    syso("sub init")}
}
public class ConstantClass{
    public static final HW="helloworld";
}
public class NotInitialization{
    main(){
    syso( SubClass.value)
    //SuperClass sc[] =new SuperClass[10]
    //syso(ConstantClass.HW);
}}
出力:super init 123、静的フィールドへのアクセスはこのフィールドのクラスを直接定義するだけで初期化されます。サブクラスは初期化されません。最初の注釈をキャンセルして実行します。出力はありません。参照クラスを定義することによって、クラスの初期化もトリガされません。仮想マシンによって自動的に生成され、Objectクラスから継承されたサブクラスの初期化が開始されます。このクラスは配列を表しています。配列の属性と方法はこのクラスで実現されます。第二の注釈がキャンセルされても出力されません。定数はコンパイルの間に常量池に入れられます。コンスタントクラス.HWはコンパイルの間にNotInitiazation類の常量池に入れられます。NotInitiazationはNotInlization記号の参照がありません。
締め括りをつける
以上は本文の浅い話Javaにおける類に対する積極的な引用と受動的な引用の全部の内容です。興味のある方は引き続き当駅の他のテーマを参照してください。友達のサポートに感謝します。