Java仮想マシン(b)の第二版の深い理解

この本を読む本

ブック - 5つの部分に分けられます。Java、自動メモリ管理、仮想マシンの実行サブシステム、コードの最適化と効率的な同時実行でコンパイルされたプログラムを迫ります。関心のあるトピックを読み始めるが、各セクションの各章の間に順 - - 各部分ができる任意のリーダーから、必ずしも依存前後に、互いに本質的に独立しています。この本は、読者がそう最も密接に仮想マシンと簡単な例では、言語やコンテンツの開発に関連について可能な限り、正確な論理的な前提を確保し、Javaの空間でのスキルの非常に専門的なレベルを持っていると仮定していません。本は読者が理解していることを前提としていて、もちろん、、、上級プログラマを学習する仮想マシン技術自体は、読者が強固な基盤を持っている必要があり、この本は、読者のポジショニングである - いくつかの一般的な開発フレームワークの基礎をというように、JavaのAPIとJavaは、構文 - 知識。私はあなたが、同時に、この本を読んだことを願って、個人の練習は再び本の内容を確認し、章のウェブサイト(TTP://www.hzbook.com)から利用可能なコードのリストをダウンロード。

言語の規則

次のように言語と技術の本は合意している: 
#は2008年のHotSpot、JRockitの仮想マシンは、WebLogic Serverおよびその他の製品、SunとBEAはまだ、それぞれ、事実、BEAと日に、会社の名前を使用しているブックの所有者に言及したときそして2009年、同社はオラクル、両方の今は亡き商標によって買収されたが、彼らはすべてのJavaの分野で顕著な貢献をしたしていることは疑いがあり、プログラマが会社を記念する価値があります。
開始から#JDK 1.5バージョン、公式文書や公式の販促資料はもはや使用される同様の「JDK 1.5」の名前で、内部でのみプログラマが(例えば開発者向けバージョン、Javaのバージョンの出力)開発版を使用して続行する前に1.5、1.6とバージョン1.7に従ってください、とJDK5、JDK6で置き換えると文言のためにJDK7で命名されたバージョン番号(製品版)を開く-ブックにすべての機会のシステムのための-開発バージョン番号が命名されている使用。0により、レイアウトの関係に、この本の中で多くのサンプルコードは、読み取り時に、このような流れの流れの使用などを念頭に、読者のノートこれを閉鎖し、そうではないが、最適なコーディングスタイルを踏襲していません。指定されていない場合は、この本の中ですべての議論は、技術プラットフォームとして、SunのJDK 1.7に基づいています。各バージョン間の特性に大きなばらつきがある場合でも、 - -それは、様々なバージョン間の違いを説明しますと。

内容。

最初の部分は、Javaに近づい

この本の最初の部分は後で説明のために良い基盤を確立しました。独自のOpenJDKのリーダーは、Java仮想マシンを理解してコンパイルするソリューションJava技術だけでなく、困難な作業のインとアウトは必要ありませんが、これらの製造方法は良いガイドはJava技術とJava仮想マシンに近づいている提供することができるが。第1章の最初の部分のみ:
第1章では、Java技術システムの過去、現在、未来を説明-いくつかの傾向を、そして独立する方法について説明し
OpenJDKの7コンパイルします。

自動メモリ管理の第二の部分

、そうでない場合はメモリリークの問題とは、外観の用語をこぼしして - - あなたはエンコード時間に自動メモリ管理の多くの利点を享受することができますが、まさにこの理由のため、ので、プログラマは、Java仮想マシンにメモリ制御力を入れているので信じられないほどのハードな作業項目 - 仮想マシンのメモリを使用する方法を学び、その後、捜査は間違いだろう。

第2の部分は、第2章1-5を含みます。 

第2章では、仮想マシンのメモリを分割する方法を説明し、どの領域の一部、どのようなコードおよび動作のメモリ・オーバーフロー例外が発生し、異常メモリのオーバーフローが発生したの一般的な原因の様々な領域を説明することができます。

第3章では、特性やガベージコレクションアルゴリズムの動作原理とJDK1.7が提供されるいくつかのガベージコレクタを分析します。コードの例は、Java仮想マシンのメモリの割り当てと自動回復の主なルールを示しています。

第4章では、2つのVisualトラブルシューティングツールとコマンドラインツールでJDK 6のリリースを使用する方法について説明します。
第5章では、実際の例の読者と共有し、さらにいくつかの代表、また調製-すべての開発者は、「実在の人物」練習することができ、読者が実践を通して経験のトラブルシューティングとチューニングを得てもよいです。

仮想マシンの実行サブシステムの第三部

クリスプ実行サブシステムは、マシンに仮想マシンはより良いコードを書くために、プログラムを実行方法を理解の重要な部分を意図しています。

第三の部分は、章6-9を含みます。

第6章では、クラスファイル構造の様々な構成要素を説明し、データ構造の各部分を定義し、クラスデモデータファイルに対抗する方法の使用は、アクセスに格納され、どのようにされています。
第7章は、どのアクションを行っている「ロード」クラスローディングプロセス、「検証」、「レディ」、「分析」し、仮想マシン内の「初期化」の段階を説明するだけでなく、クラスローダの原理を紹介し、仮想マシンにその意義。
第8章では、コードを実行するために記憶に関与する方法及び構造でバイトコードを実行する方法、コードの実装に適切なアプローチを見つける方法仮想マシンを分析します。
4クラスのロードと実行サブシステムの例により、第9章では、感謝に値するいくつかのアイデアを共有し、クラスローダとバイトコードを使用すると戦闘運動の前面から理論的知識の理解を深めて学びます。

第四プログラムは、コードの最適化でコンパイルされています

Javaソース・コード・プログラムは、二つのプロセスからのバイトコードにコンパイルされ、マシンコードへのバイトコードにコンパイルされ、実際には、マージと同等である - 従来のコンパイラによって実行されるコンパイルプロセス。

第四の部分は章11を介して10を含みます。

第10章では、Java言語でのジェネリック医薬品、実用的なデモンストレーションを通じて実施されるシンタックスシュガーアクティブボクシングとアンボクシング、条件付きコンパイルや他の原因と影響、そしてどのようインサートタイプの注釈プロセッサを使用するさまざまな分析- -命名規則チェック手順をコンパイラプラグイン。
第11章ではまた、いくつかの一般的なコンパイラの最適化技術を説明し、仮想マシン、ホットスポット・タイム・コンパイラ、コンパイラのトリガ、およびどのように加えて、仮想マシンの外JITコンパイルデータと結果から観察し、分析するための焦点検出方法を説明します。
第5、効率的な同時
Java言語と仮想マシンは、同時マルチスレッド・アプリケーションの開発のため、それは本質的に適しています完璧なマルチネイティブスレッドのサポートを提供します。上級プログラマ不可欠コース-しかし、我々は、関連するすべての同時処理の並行を完了するためのシステムはまた、インサイダーになる期待することはできません。部分Vは、12〜第13章を含む:
第12章構造および動作仮想マシンのJavaメモリモデル、およびアトミック性、視認性を説明し、Javaメモリモデルで秩序を反映して、最初に発生ルールの原則を導入しますそして、使用は、だけでなく、Java言語でスレッドを達成するためにどのようにされて理解します。
第13章では紹介関与スレッドの安全性の概念と分類を、原則的には、仮想マシンの同期の実装の動作の基礎となる方法、および撮影した効率的な同時用の仮想マシンを導入- -シリーズロック最適化の措置。

 

298元記事公開 ウォンの賞賛107 ビューに14万+を

おすすめ

転載: blog.csdn.net/ywl470812087/article/details/105023961