検索
ホームページJava&#&ベースJavaコードのコンパイル順序は何ですか

Java コードのコンパイル シーケンス: 最初にソース コードが字句アナライザーに入り、次にトークン ストリームが構文アナライザーに入り、次に抽象構文ツリーが処理され、次にセマンティック アナライザーが実行され、次に抽象構文ツリーが実行されます。バイトコード プロセッサを使用して注釈が付けられ、生成され、最終的に jvm バイトコードが生成されます。

Javaコードのコンパイル順序は何ですか

Java コードのコンパイル シーケンス:

Java コードのコンパイルは、Java ソース コード コンパイラによって完了します。フローチャートは次のとおりです:

Javaコードのコンパイル順序は何ですか

Java バイトコードの実行は、JVM 実行エンジンによって完了します。フローチャートは次のとおりです:

Javaコードのコンパイル順序は何ですか

Java コードのコンパイルと実行のプロセス全体には、次の 3 つの重要なメカニズムが含まれます: 1) Java ソース コードのコンパイル メカニズム、2) クラスのロード メカニズム、3) クラスの実行仕組み

## このうち、Javaソースコードのコンパイルは、1) 解析とシンボルテーブルへの入力、2) アノテーション処理、3) 意味解析とクラスファイルの生成の3つのプロセスで構成されます。 # フローチャートは次のとおりです。

最終的に生成されるクラス ファイルは次の部分で構成されます。 Javaコードのコンパイル順序は何ですか

1) 構造情報。クラス ファイル形式のバージョン番号と、各部分の数とサイズに関する情報が含まれます。

2) メタデータ。 Javaソースコードの宣言や定数に関する情報に相当します。クラスの宣言情報、継承されたスーパークラス、実装されたインターフェイス、ドメインとメソッドの宣言情報、および定数プールが含まれます。

3) メソッド情報。 Javaソースコードの文や式に対応する情報に相当します。バイトコード、例外ハンドラテーブル、評価スタックとローカル変数領域のサイズ、評価スタックタイプのレコード、デバッグシンボル情報が含まれます。

クラスロードの仕組み

JVM クラスのロードは ClassLoader とそのサブクラスを通じて行われ、クラスの階層関係とロード順序は次の図のようになります。

##1) BootStrap ClassLoader

Javaコードのコンパイル順序は何ですか は、$JAVA_HOME の jre/lib/rt.jar パッケージ内のすべてのクラスをロードする役割を果たします。これは C によって実装されており、 ClassLoader サブクラスではありません

2) Extension ClassLoader

は、jre/lib/*.jar で指定されたディレクトリ内の jar を含む、Java プラットフォームの拡張機能用のいくつかの jar パッケージをロードする役割を果たします。または $JAVA_HOME バッグ内の -Djava.ext.dirs。

3) アプリ ClassLoader

は、クラスパスで指定された jar パッケージとディレクトリ内のクラスを記録する責任があります。

4) カスタム ClassLoader

が属しますtomcat や jboss などのカスタマイズされた ClassLoader は、j2ee 仕様に従って ClassLoader を実装します。

ロード処理中、最初にクラスがロードされているかどうかがチェックされます。チェック順序は下から上、カスタム ClassLoader から BootStrap の順です。 ClassLoader はレイヤーごとにチェックします。特定のクラスローダーがロードされている限り、そのクラスはロードされているとみなされ、このクラスが 1 回だけロードされることが保証されます。ロード順序は上から下です。

クラス実行メカニズム

JVM はスタック アーキテクチャに基づいてクラスのバイトコードを実行します。スレッドが作成されると、次に実行する命令を格納するプログラム カウンタ (PC) とスタック (Stack) が生成されます。各スタック フレームはスタックに格納されます。各スタック フレームは、各メソッドの呼び出しに対応します。スタック フレームは、ローカル変数領域とオペランド スタックの 2 つの部分で構成されます。ローカル変数領域は、ローカル変数をローカル変数に格納するために使用されます。メソッドとパラメータのオペランド スタックは、メソッドの実行中に生成された中間結果を格納するために使用されます。スタックの構造は次のとおりです:

Javaコードのコンパイル順序は何ですか 関連する無料学習の推奨事項:

Java 基本チュートリアル

以上がJavaコードのコンパイル順序は何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

Dreamweaver Mac版

Dreamweaver Mac版

ビジュアル Web 開発ツール

PhpStorm Mac バージョン

PhpStorm Mac バージョン

最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール

SublimeText3 英語版

SublimeText3 英語版

推奨: Win バージョン、コードプロンプトをサポート!

DVWA

DVWA

Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、

mPDF

mPDF

mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。