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

WBOY
リリース: 2023-05-14 15:25:06
転載
1438 人が閲覧しました

説明

プログラムがクラスをアクティブに使用するとき、クラスがメモリにロードされていない場合、システムは次の 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 までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!