JVMの基本原理はこのオープンソースプロジェクトで説明されている。

JVMの基本原理はこのオープンソースプロジェクトで説明されている。

[[415998]]

JVM は Java Virtual Machine の略です。 JVM はコンピューティング デバイスの仕様です。実際のコンピュータ上でさまざまなコンピュータ機能をシミュレートして実装された架空のコンピュータです。

Java プログラマーは皆、JVM が優れたプログラマーになるために乗り越えなければならないハードルであることを知っています。今日、Github のウィークリー リストで非常に便利な JVM オープン ソース プロジェクト、jvm を見つけました。このプロジェクトでは、作成者が習得する必要があると考える JVM の知識ポイントをいくつか記録します。このプロジェクトを学習した後、JVM の基本原理をより包括的に理解したい場合は、Zhou Zhiming 先生の著書「Java 仮想マシンの詳細な理解 - JVM の高度な機能とベスト プラクティス (第 2/3 版)」全文を読むことができます。

このプロジェクトの主な内容は次のとおりです。

プロジェクト全体の内容は比較的完成しています。 [JVM メモリ構造] の部分を見てみましょう。

Java 仮想マシンのメモリ空間は 5 つの部分に分かれています。

  • プログラムカウンタ
  • Java 仮想マシン スタック
  • ネイティブメソッドスタック
  • ヒープ
  • 方法領域

JDK 1.8 と JDK 1.7 の最大の違いは、メタデータ領域が永続世代に置き換わっていることです。メタスペースの本質は永続世代に似ており、どちらも JVM 仕様のメソッド領域の実装です。ただし、メタスペースと永続世代の最大の違いは、メタデータ スペースは仮想マシン内になく、ローカル メモリを使用することです。

Java仮想マシンスタックの定義

Java 仮想マシン スタックは、Java メソッド実行プロセスを記述するメモリ モデルです。 Java 仮想マシン スタックは、実行される各 Java メソッドに対して「スタック フレーム」と呼ばれる領域を作成します。この領域は、メソッドの実行中に次のような情報を保存するために使用されます。

  • ローカル変数テーブル
  • オペランドスタック
  • 動的リンク
  • メソッドエクスポート情報

プッシュアンドポッププロセス

メソッドの実行中にローカル変数を作成する必要がある場合、ローカル変数の値はスタック フレーム内のローカル変数テーブルに格納されます。

Java 仮想マシン スタックの最上部にあるスタック フレームは、現在実行中のアクティブ スタック、つまり現在実行中のメソッドであり、PC レジスタもこのアドレスを指します。このアクティブなスタック フレームのローカル変数のみがオペランド スタックで使用できます。このスタック フレームで別のメソッドが呼び出されると、対応するスタック フレームが作成され、新しく作成されたスタック フレームがスタックの先頭にプッシュされ、現在のアクティブなスタック フレームになります。

メソッドが終了すると、現在のスタック フレームは削除され、スタック フレームの戻り値は、新しいアクティブ スタック フレームのオペランド スタック内のオペランドになります。戻り値がない場合、オペランド スタック上のオペランドは新しいアクティブ スタック フレームでは変更されません。

現在、jvm は Github で 6.1K のスターと 1.5K のブランチを持っています (Github アドレス: https://github.com/doocs/jvm)

<<:  2021 年の優れたオープンソース Kubernetes ツール 11 選

>>:  Canalys: アマゾン、マイクロソフト、グーグルがクラウドサービス市場の60%を占める

推薦する

SEO 最適化担当者は、これらの古い考え方を変えなければ、確実に消滅するでしょう。

SEO を学ぶ学生の皆さん、ウェブサイトを最適化するためにまだ古いアイデアを使っていますか? もしそ...

QingCloud、クラウドICT事業拡大のため年間7つの新製品を発売

エンタープライズレベルのフルスタック クラウド ICT サービス プロバイダーである QingClo...

子どもの視点から世界を見てみましょう!子ども向け製品ウェブサイトのユーザビリティ調査

ここ数年で子供向けの商品が急速に登場し、ますます人気が高まっています。 iResearchは、201...

テンセントクラウド、広東ホテルグループ、ハッチスマートが戦略的合意に達し、スマートホテルの新たな章を開く

6月22日、テンセントクラウド、広東国際ホテル管理グループ(以下、「広東ホテルグループ」)およびハッ...

友好的なリンクを交換する際の注意点といくつかの原則について簡単に説明します。

フレンドリーリンクは、ウェブサイトのエクスポートリンクの最も重要な部分でもあり、キーワードランキング...

2021年にクラウドコンピューティング業界を変える3つのトレンド

新型コロナウイルス感染症のパンデミックは、2020年に長い影を落としています。パンデミックの結果、一...

SEO はどこに向かっているのでしょうか?

はるか昔、SEO は非常に人気がありました。それは、個々のウェブマスターの世界です。ウェブサイトを構...

boltvm-$2.25/1g メモリ/100g ハードディスク/1T トラフィック/G ポート/ロサンゼルス

DediCube LLC (サーバーレンタルおよびホスティング) 傘下の VPS ブランドである B...

スマートホストはどうですか?シアトル(ワシントン州 - 米国)データセンターの VPS のレビュー、TikTok/Netflix のブロック解除

スマートホストはどうですか?スマートホストシアトルVPSはいかがでしょうか? Smarthost は...

Bilibili、iQiyi 広告およびコンテンツ IP

11月17日、ビリビリ(以下、「ビリビリ」)とiQiyiは、2019年9月30日までの第3四半期の財...

A5論文作成から得た「執筆経験」の分析

世の中のあらゆるものは発展しています。この言葉はまさに真実です。2009 年、Taoke は人気商品...

閉じ込められた獣か、それとも温かい水の中のカエルか?小規模ネットワーク企業の状況に関する簡単な議論

3つの超巨大企業と多くの強力な企業は私とは何の関係もありません。小さなインターネット企業の全体的な能...

ライブストリーミングが618の変化を牽引:DouyinとKuaishouは積極的、一方商人は冷静

要点ライブストリーミング販売ブームは引き続き熱を帯びており、今年の伝統的な電子商取引プロモーションフ...

Mozilla、FirefoxのCNNIC証明書が取り消されたと発表

Googleに続き、Firefoxブラウザの開発元であるMozillaも、2015年4月1日以降、中...