ホームページ  >  記事  >  Java  >  Javaクラスロードの処理例の分析

Javaクラスロードの処理例の分析

WBOY
WBOY転載
2023-05-14 15:25:061384ブラウズ

説明

プログラムがクラスをアクティブに使用するとき、クラスがメモリにロードされていない場合、システムは次の 3 つの手順でクラスを初期化します。

クラスのロード手順

1. ロード: クラス ファイルのバイトコード コンテンツをメモリにロードし、これらの静的データをメソッド領域構造内の実行時データに変換します。次に、このクラスを表す java.lang.Class オブジェクトを生成します。これは、メソッド領域のクラス データへのアクセス入り口として機能します。

2. リンク: Java クラスのバイナリ コードを JVM の実行状態にマージするプロセス。

3. クラス コンストラクターの () メソッドを実行するプロセス。

public class ClassLoadingTest{
    public static void main (String [] args){
        System.out.println(test.m);
    }
}
 
class test{
    static {
        m = 300;
    }
    static int m = 100;
}
//第一步:加载
//第二步:链接结束后m=0
//第三步:初始化结束后,m的值由<clinit>()方法执行决定
/*
这个test构造器<clinit>()方法由类变量的赋值和静态代码块中的语句按照顺序合并产生,类似于
<clinit>(){
m = 300;
m = 100;
}
*/

以上がJavaクラスロードの処理例の分析の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はyisu.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。