Skip to Content
Javaの最適化
book

Javaの最適化

by Benjamin J. Evans, James Gough, Chris Newland
March 2025
Intermediate to advanced
440 pages
6h 29m
Japanese
O'Reilly Media, Inc.
Content preview from Javaの最適化

第2章 JVMの概要 JVMの概要

この作品はAIを使って翻訳されている。ご意見、ご感想をお待ちしている:translation-feedback@oreilly.com

Javaが地球上で最も大きな技術プラットフォームの1つであり、およそ900万~1000万人の開発者を誇っていることは間違いない(Oracleによると)。デザインファーストの開発では、多くの開発者は自分が扱うプラットフォームの低レベルの複雑な仕組みについて知る必要はない。。そのため、開発者がこうした側面に出会うのは、顧客から初めてパフォーマンスについてクレームが来たときだけという状況になる。

しかし、パフォーマンスに関心のある開発者にとっては、JVM技術スタックの基本を理解することが重要である。JVMテクノロジーを理解することで、開発者はより良いソフトウェアを書くことができ、パフォーマンス関連の問題を調査するのに必要な理論的背景を得ることができる。

この章では、JVMがJavaをどのように実行するかを紹介し、本書の後半でこれらのトピックをより深く探求するための基礎を提供する。特に、第9章ではバイトコードを深く扱っている。読者の戦略の1つは、今この章を読み、他のトピックがある程度理解できたら、第9章と合わせて再読することである。

インタプリタとクラスローディング

Java仮想マシンを定義する仕様(通常はVM仕様と呼ばれる)によると、JVMはスタックベースのインタプリタ・マシンである。 これは、(物理的なハードウェアCPUのような)レジスタを持つのではなく、部分的な結果の実行スタックを使用し、そのスタックの一番上の値(or値)を操作することによって計算を実行することを意味する。

JVMインタプリタの基本的な振る舞いは、本質的に「while ループの中のswitch 」と考えることができる。つまり、プログラムの各オペコードを最後のループから独立して処理し、評価スタックを使って中間値を保持する。

注

Oracle/OpenJDKの仮想マシン(HotSpot)の内部を掘り下げるとわかるように、実際のプロダクション・グレードのJavaインタプリタの状況はもっと複雑になる可能性があるが、switch-inside-whileは今のところ許容できるメンタル・モデルである。

java HelloWorld コマンドを使ってアプリケーションを起動すると、オペレーティング・システムは仮想マシン・プロセス(java バイナリ)を起動する。これによりJava仮想環境がセットアップされ、HelloWorldクラス・ファイル内のユーザ・コードを実際に実行するスタック・マシンが初期化される。

アプリケーションへのエントリ点は、HelloWorld.classの main() メソッドとなる。このクラスに制御を渡すためには、実行を開始する前に仮想マシンによってロードされなければならない。

これを実現するために、Javaのクラスローディング・メカニズムが使われる。 新しいJavaプロセスが初期化されるとき、クラスローダーのチェーンが使用される。初期化ローダーは、Bootstrapクラスローダーとして知られており、コアJavaランタイムのクラスを含んでいる。 バージョン8までのJavaでは、これらはrt.jarからロードされる。バージョン9以降では、ランタイムはモジュール化され、クラスローディングの概念は多少異なっている。

Bootstrapクラスローダーの主な点は、他のクラスローダーがシステムの残りの部分を立ち上げることができるように、最小限のクラスセット( ...

Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.

Read now

Unlock full access

More than 5,000 organizations count on O’Reilly

AirBnbBlueOriginElectronic ArtsHomeDepotNasdaqRakutenTata Consultancy Services

QuotationMarkO’Reilly covers everything we've got, with content to help us build a world-class technology community, upgrade the capabilities and competencies of our teams, and improve overall team performance as well as their engagement.
Julian F.
Head of Cybersecurity
QuotationMarkI wanted to learn C and C++, but it didn't click for me until I picked up an O'Reilly book. When I went on the O’Reilly platform, I was astonished to find all the books there, plus live events and sandboxes so you could play around with the technology.
Addison B.
Field Engineer
QuotationMarkI’ve been on the O’Reilly platform for more than eight years. I use a couple of learning platforms, but I'm on O'Reilly more than anybody else. When you're there, you start learning. I'm never disappointed.
Amir M.
Data Platform Tech Lead
QuotationMarkI'm always learning. So when I got on to O'Reilly, I was like a kid in a candy store. There are playlists. There are answers. There's on-demand training. It's worth its weight in gold, in terms of what it allows me to do.
Mark W.
Embedded Software Engineer

You might also like

ネットワークとKubernetes

ネットワークとKubernetes

James Strong, Vallery Lancey
ファストAPI

ファストAPI

Bill Lubanovic

Publisher Resources

ISBN: 9798341636446