ホームページ Java &#&チュートリアル Javaクラスロードの処理例の分析

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

May 14, 2023 pm 03:25 PM
java

説明

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

クラスのロード手順

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

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

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

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的值由&lt;clinit&gt;()方法执行决定
/*
这个test构造器&lt;clinit&gt;()方法由类变量的赋值和静态代码块中的语句按照顺序合并产生,类似于
&lt;clinit&gt;(){
m = 300;
m = 100;
}
*/
ログイン後にコピー

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

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットな記事タグ

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Javaの平方根 Javaの平方根 Aug 30, 2024 pm 04:26 PM

Javaの平方根

Javaの完全数 Javaの完全数 Aug 30, 2024 pm 04:28 PM

Javaの完全数

Java の乱数ジェネレーター Java の乱数ジェネレーター Aug 30, 2024 pm 04:27 PM

Java の乱数ジェネレーター

Javaのアームストロング数 Javaのアームストロング数 Aug 30, 2024 pm 04:26 PM

Javaのアームストロング数

ジャワのウェカ ジャワのウェカ Aug 30, 2024 pm 04:28 PM

ジャワのウェカ

Javaのスミス番号 Javaのスミス番号 Aug 30, 2024 pm 04:28 PM

Javaのスミス番号

Java Springのインタビューの質問 Java Springのインタビューの質問 Aug 30, 2024 pm 04:29 PM

Java Springのインタビューの質問

Java 8 Stream Foreachから休憩または戻ってきますか? Java 8 Stream Foreachから休憩または戻ってきますか? Feb 07, 2025 pm 12:09 PM

Java 8 Stream Foreachから休憩または戻ってきますか?

See all articles