高度な技術: Java 仮想マシン (JVM) ランタイムの詳細な説明

高度な技術: Java 仮想マシン (JVM) ランタイムの詳細な説明

私たちが知っている JVM メモリ領域は、ヒープとスタックです。これは一般的な区分であり、実行領域に基づく区分でもあります。ヒープはすべてのスレッドで共有される領域ですが、スタックはスレッドごとに分離されており、各スレッドでは共有されません。

スレッドは領域を共有しない

各スレッドのデータ領域には、プログラム カウンター、仮想マシン スタック、ローカル メソッド スタックが含まれており、これらはすべて新しいスレッドの作成時に作成されます。

プログラムカウンタ

プログラム カウンター領域は、スレッドの各実行命令を格納するために使用される小さなメモリ領域です。各スレッドには独自のプログラム カウンターがあり、この領域ではメモリ オーバーフローは発生しません。

VMスタック

仮想マシン スタックは、Java メソッド実行のメモリ モデルを記述します。各メソッドが実行されると、ローカル変数テーブル、オペランド スタック、動的リンク、メソッド終了などの情報を格納するためのスタック フレームが作成されます。各メソッドが呼び出されてから実行されるまでのプロセスは、スタック フレームが仮想マシン スタックにプッシュされてからスタックからポップされるまでのプロセスに対応します。

ネイティブメソッドスタック

ネイティブ メソッド スタックは、ネイティブ メソッド (ネイティブとマークされたメソッド、つまり Java 以外の言語で実装されたメソッド) をサポートするために使用されます。

仮想マシン スタックとローカル メソッド スタック。スレッドによって要求されたスタック容量が JVM で許可される最大容量を超えると、StackOverflowError 例外がスローされます。

スレッドが共有しない領域は、下の図で緑色で示されています。

スレッド共有領域

スレッド共有領域には、ヒープ領域とメソッド領域が含まれます。

ヒープ

ヒープは最も頻繁に処理される領域です。 JVM の起動時に作成された配列とオブジェクトを格納します。 JVM ガベージ コレクションも主にヒープ上で動作します。

実際に必要なヒープが自動メモリ管理システムが提供できる最大容量を超えると、OutOfMemoryError 例外がスローされます。

方法領域

メソッド領域は、すべてのスレッドで共有できるランタイム メモリ領域です。実行時定数プール、フィールドとメソッドのデータ、コンストラクタと通常のメソッドのバイトコードの内容、クラス、インスタンス、およびインターフェースを初期化するときに使用されるいくつかの特殊なメソッドなど、各クラスの構造情報を格納します。

クラスとインターフェースを作成するときに、ランタイム定数プールを構築するために必要なメモリ領域がメソッド領域が提供できる最大メモリ領域を超えると、OutOfMemoryError がスローされます。

ランタイム定数プール

ランタイム定数プールはメソッド領域の一部です。各ランタイム定数プールは、JVM のメソッド領域に割り当てられます。クラスとインターフェースが JVM にロードされた後、対応するランタイム定数プールが作成されます。ランタイム定数プールは、各クラスまたはインターフェースの定数プール (Constant_Pool) のランタイム表現です。これには、コンパイラーに認識される数値リテラルから、実行時に解決する必要があるメソッドまたはフィールドへの参照まで、いくつかの種類の定数が含まれます。

メソッド領域のメモリ空間がメモリ割り当て要求を満たすことができない場合、Java 仮想マシンは OutOfMemoryError 例外をスローします。

スタックにはフレームが含まれており、メソッドが呼び出されると、フレームがスタックにプッシュされます。フレームには、ローカル変数配列、オペランド スタック、定数プール参照が含まれます。

<<:  大規模アプリケーションのパフォーマンスの課題を克服するにはどうすればよいでしょうか?

>>:  あなたは、VLAN と VXLAN の違いを理解しているネットワーク エンジニアですか?

推薦する

impactvps-$6/5IP/4コア/4gメモリ/45g SSD/2Tトラフィック/10gポート/シアトル/ダラス

Impact VPSは Subnet Labs の VPS ブランドです。1 年以上安定して運用され...

Baidu 百科事典のエントリを作成する方法

最近、私のクラスメイトの多くが企業に就職しており、その仕事のほとんどは専攻に関連したマーケティングや...

10の視点からウェブサイトのトラフィックを伸ばす

ウェブサイトが収益を上げたい場合、トラフィックなしでは成り立ちません。その結果、多くのウェブマスター...

検索エンジン最適化における投票の原則と運用上のエラーについての簡単な説明

インターネットの急速な発展に伴い、近年SEO業界の競争はますます激しくなっています。Baiduのアル...

#推奨# bacloud: 月額 15 ドル、リトアニア 100M 帯域幅無制限トラフィック専用サーバー、「Alipay」

有名なリトアニアのホスティング プロバイダー bacloud は、特別価格で専用サーバーを 2 台提...

2024 年に注目すべき 8 つのクラウド コンピューティング トレンド

この記事では、人工知能の影響、主要なテクノロジーの予測、クラウド インフラストラクチャの進化する状況...

ウェブサイトがKでホームページだけが残った3つの理由の分析例

ウェブサイトの最適化の過程で、ウェブサイトが K 化されることは非常に一般的です。ほとんどのウェブマ...

中国初のタクシー配車アプリは資金不足に陥り、業界は再編を迎えようとしている

新しいインターネット アプリケーションは、誕生から普及に至るまで、常にチャンス、課題、あらゆる場所で...

Linode 割引コード: Linode 割引コードは定期的に更新され、現在はすべて有効です。

多くの人は、VPS を少ないお金で購入することを好み、1 か月分のお金を費やして数か月間使用するのが...

ウェブサイトのロングテールキーワードの選択テクニックについてどれくらいご存知ですか?

今日では、ウェブサイトを構築する際には、キーワードの選択が必須です。ウェブサイトに適切なキーワード ...

LetBox-$20/X3440/8G メモリ/500g ハードディスク/100M 無制限/シアトル

Letbox は特別価格で複数のサーバーをリリースしました。元の価格は月額 30 米ドルと非常に安い...

ウェブサイトのランキングに直接影響を与える4つの大きな間違いについて詳しく説明します

ウェブサイト所有者の90%は、自分のウェブサイトが標準に最適化されており、コンテンツが完璧で、ユーザ...

第2四半期グローバルストリーミングトレンドレポート

このほど、人工知能ビデオ分析サービスプロバイダーのConvivaが「第2四半期グローバルストリーミン...

母子向け電子商取引会社Redbabyが2000万ドルの資金調達、蘇寧による買収の噂を否定

昨日、売却の噂に巻き込まれた母子向け電子商取引会社レッドベイビーが今日沈黙を破り、自らメディアとコミ...