インタビューとJVM仮想マシンのテストをする方法を学ぶためにJava:Javaのを学ぶために5分

名前.JPGコピー_

元の文

著者:黄斜め

復刻版は、資料の冒頭にソースと作者を明記してください。

この記事マインドマッピング

ここに画像を挿入説明

なぜJVM仮想マシンを学びます

あなたは、最近のJavaのインタビューに参加したことがありますか?Javaのインタビューは、常に問題のクラスをテストするのが大好きです、あなたが気づいていることがJVM仮想マシン、すべてのJavaプログラムは、基本的にJVM上で実行されているので、愛のJ​​VMの問題の研究は、これが理由だったインタビュアーそうJVMの仮想マシンがない、Java言語のない実行環境では、あなたがそれ以外の場合は、人々は、彼らがAndroidオペレーティングを理解していないと言うの携帯電話のように再生されます、あなたは、Javaを知っていると言うことができるだけで、関連する知識JVM仮想マシンをマスターすること、ありません同じシステム。

導入Baiduの百科事典は、JVM Java仮想マシン(Java仮想マシン)の略語であり、JVMは、架空のコンピュータが実際の様々なコンピュータのコンピュータシミュレーションでシミュレーションすることにより、コンピューティングデバイスのコードは、あります達成するための機能。Java仮想マシン語を導入した後、Java言語は、ときに、異なるプラットフォーム上で実行するために再コンパイルする必要はありません。唯一のJava言語コンパイラは、オブジェクトコード(バイトコード)を生成するように、特定のシールドのプラットフォームに関連付けられているJava言語情報を使用してJava仮想マシンで実行中のJava仮想マシンは、複数のプラットフォーム上で変更することなく実行することができます。

それ自体は、言語およびオペレーティングシステムの強い関連性であるため、それはJVMの存在により、Javaはクロスプラットフォームを実行する能力を持っていることができるようになりますのであり、一度、どこでも実行し、コントラスト、言語のC ++種類、あなたは、実行するためにどこでもコンパイルする必要があります仮想マシンの概念はありません。

学ぶために、JVM仮想マシンの存在により、Java言語の複雑さも大幅に削減されているので、もちろん、彼らの給与はJVM Java仮想マシンを残して、低下したスピードによって支払われる話にも意味がありませんすべてのJVMのJava技術を学ぶことです前提。

JVM仮想マシンを学ぶ方法

私たちの側のJVMの仮想マシン

これは地獄ああであれば、私は知らない、で、その後、私は「イン深JVM仮想マシンの理解を」JVM聖書という本を買って、または顔の質問で、私はこの事JVM仮想マシンを初めて聴いた時は幸運十分でした知っている、オリジナルのJVMの仮想マシンは、私たちのコンピュータ上で実行されています。

Java開発者として、スリーピースのエントリは、おそらくIDE、JDKおよびJREで、実際には、JDKはJREが含まれており、JRE(Javaランタイム環境)も、JVMの仮想マシンが含まれています。私たちが使用したり、使用した場合、IDEは、実際には、Javaコードのクラスのバイトコードに変異し、その後、JVMの実行に投げ込まれ、Javaプログラムの実行をコンパイルするかのjavac。

ジャワと呼ばれるプロセスマネージャが存在します。この時点で私たちの仕事は、このプロセスは、JVMプロセスとして理解することができ、多くのサブスレッドが存在するこのプロセスは、コード、ガベージコレクションなどの実装を担当しています。

何度も我々はJVM仮想マシンがGeshaある見当がつかない、当然、我々はその性質を理解すれば、学習曲線の背後にあるものはそれほど苦痛ではありません、それをうまく学習できません。

JVMの顔の質問には

"「JVMのヒープとスタックの違いは何ですか」プログラマーJVMの多くは、このような、より人気のあるインタビューの質問のいくつかは、例えば、私はインタビューの中で初めて聴いた時、実際にはJVMについて顔の質問の多くであってもよいがあります「」JVMのメモリ・モデルはどのような「など、比較の基準と考え、このようなタイトルであるJVMのガベージコレクションアルゴリズム。

このようなトピックは、通常、表面によってブラシによって、すべての後に、インタビュアーが必ずしもよりあなたよりも知ることができませんので、インタビュアーが深いダウンを掘るしないことがあり、それに答えることが可能です。しかし、技術的な調査のいくつかは、より深い企業がJVMを調べるために、必然的にJavaテクノロジー・スタックベースの企業、特に電気のサプライヤー企業の多くではありませんされた場合は、アリ米国のグループに加えて、かなり深いです、そこJingdongは、賞賛を持つ唯一の製品は、他の企業の多くを戦います。

だから、我々としても、顔の質問がどのように見えるJVMの高度なバージョンを見てかかることがあります。まず、JVMのメモリモデルとして主に深さのタイトルの高度なバージョン、あなたはそれがそれぞれの地域が何をしているかを明確にしなければなりません、そして、そのようなどのエリア内の文字列変数として、お聞きし、実際のシーンを行いますメタデータ領域が配置されているローカルおよびグローバル変数のどの領域に基づきます。あなたが唯一の漠然と認識してメモリモデルであれば、突然のすべては、それが面接に至るまで見られます。

また、のようなJVMのインタビューの高度なバージョンは、JVMガベージコレクションのアルゴリズム、ストップコピー、明確なマークなどの詳細を調べるために、あなたはそれぞれの長所と短所が明確に、明確なプロセスに必要です。この問題は十分なあなたへの脅威ではない場合、それは、質問JVMのガベージコレクションの他の種類を見てみたいことがインタビュアーの多くは、単に若い世代については、それを置くかもしれない「どのように若い世代のGCがあり、詳細にプロセスを説明してください」回収方法。

あなたは、単に答えたかもしれません:詳細の多くは、まず、あるそこに伝えることができます実際には、実際には、若い世代がエデンゾーンや遺族の地区に分けられ、遺族もゾーンにしてから分割された「ストップの使用は行わコピー」地区に、エデンの領域が領域から生き残ったオブジェクトを置くされますが、次の若いGC後、地域から地域へとポジションを入れ替えます、オブジェクトは、動きに追従するオブジェクトプラスワンの年齢、その際歳以上対象ときしきい値、オブジェクトは、古い時代に入ります。

一見単純な疑問は、実際に非常に多くの出入り口の結果を知ることができ、これは私の経験は面接の経験の後に何度もまとめたです。

「綿密なJVM仮想マシンの理解」JVMバイブル

何千人とJavaの本の何千人もが、それは実際にそれがこれだけを予約することがJVM仮想マシンをオフにすることができます。JVMに関するほとんどのオンラインのブログは、コンテンツやリファレンスブックを学ぶ基本的です。

そして、最後に、この本はどのようなJVMの一部の内容はと言うと、私はそれを分解するために協力したいです。

この本の最初の部分は、言語のJavaの歴史についてである、そしてなぜそれが非常に重要であるJVM上で実行する必要があり、そうでない場合、開発者は、優れたプログラミング言語は、仮想マシン上でそれを実行するために、なぜだろう。

第二部は、本がJVMそのメモリモデルの中核となる概念を導入し始め、JVMは、コンピュータのメモリを管理する方法ですが、また、非常に、本当に悪い管理してJavaの型と変数に、すべての後に、これらの領域を分割する方法。

第三部では、この本のより困難な部分は、それはあなたがしばらく一つターン1でJVM、Javaコード上で実行する前に、バイトコードにコンパイルされたJavaコードを置くことで実行されているJavaコードの原則を導入し始めていますクラス、記事がどのようにJVM仮想マシンの負荷に、これらのクラスを記述し、多くの新しい概念がありますが、それは価値が模索しているそう。

最適化されたコンパイルと最適化を実行し、最適化を含むプログラムの実行のために最適化された多くのJVMを、そこに記載され、第四部分、コンパイル、コードの最適化は、この部分は実際にはもっと人気があるが、それは実際には非常に複雑です目的は、Javaプログラムをより効率的に実行、後にこの部分を理解することです、あなたは農産物敬意に設計された、確かにJVM仮想マシンます。

第五の部分はマルチスレッドJVM Javaサポートに焦点を当て、Javaはここで紹介私たちの共通のロックは、同期している伴いますまた、設計、実装JVMに基づいて自然を、マルチスレッド、それはの本質でありますミューテックスが、同期ヘビー級のロックのために最適化されたJVMとして、それは徐々に軽量ロックとロックバイアスをサポートするようになりました。

もちろん、より人気のいくつかの要素がありますが、基本的には試験検査に焦点を当て、一冊の本のエッセンスある、と述べ、あまり見ることにするインタビュアーによって影響を受けることができます。しかし、この本は、基本的に、我々は明確な知識を持っている必要がありJVMで、JVMの理論的研究のために、この本は十分です。

JVMのチューニング戦闘

完成理論、そして最終的に戦闘の一部に。
JVM全体のナレッジ・モジュールは、あまり物事を練習することができるようですが、知識の部分的な理論のように見えるが、実際には、JVMの実践的側面のことができるように、このようなJVMのチューニング、GC分析とJVMメモリ分析などの事、たくさんのことができ、インタビューされています公式練習を検査する能力が好きでした。
次のセクションでは、我々はJVMの実際の内容について何かを言うだろう。

いくつかの先進的なJavaのインタビューでは、JVMについての質問は、あなたが、あまりにも頻繁に、GCをどのようにあなたがそれらを見つけた、OOMまたはメモリリークの前に会っていない、またはことがないよう、JVMのチューニングと実践に関連するかもしれませんどのように我々は、調査を行う必要があります。
要するに、これらの質問は、実際に基づいており、実際には通常、CRUDのためにしている候補者の経験、の研究であり、サーバは友人に遭遇しなかったとしてもどのように、確かに大きな課題です。

私たちが行うことになっていることを、実際には、すべての後、私はこの点で私のレビューの前に白いJVMがない実践的な経験は、主にいくつかの方法を通じてよ、ない方法ではありません。

このようJprofileとしてよりよく知られているJVMのチューニング・ツール、試して、いくつかのを見つけ、またJDK jmapのjstackなどが付属しています。これらのツールは、いくつかのOOMやメモリリークを書き込み、表示されますツールに何が起こるか見て、独自のプログラムをテストするために使用され、これは学習の一つの良い方法です。

しかし、言うだろう、誰かが、多くの質問が高く、通常、独自のコードは、この問題に直面していないだろう、高負荷やシーンを持って直面し、それを行う方法を、実際には、実際の顔の質問にこのようなオンラインチューニングの方法があります。共有への多くは、あなたが通常の練習のこのタイプを動作しませんので、場合でも、あなたは優れたチューニングJVMによって学ぶことができ、チューニングするために、手順がどうあるべきか、実際には、誰か他の人の記事からの回答のいくつかを見つけることができますどのように特定のシーンのために、そこにありますレビューへの実際の記事では、実際には、真実は同じです。

推奨リソース

図書

「JVM仮想マシンの深い理解」

ビデオ

私は実際には、このエリアは良い人についてはあまり話がずっとビデオリソースは、すべての後、ほとんどのビデオまたは話すか、プロジェクト指向の基礎、徹底的にJVM仮想マシンを公表することはできませんで、共有への皆のためのJVM学習ビデオのいくつかの側面をコンパイル。

ブログ

Javaテクノロジの蔵の「Javaプログラマーズ・ガイドレビュー」
https://github.com/h2pl/Java-Tutorial
高度なJavaの系統的レビューに基本からあなたを助けるために、高品質なJavaの学習コンテンツのネットワーク全体の統合、

インタビューガイド

ネットワーク全体最もホットなJavaのインタビューガイド、非常に実用的な200以上のページ、合計、レビューのためか、面接の準備をするかどうかは良いです。

概要

我々が今日はここで話をした、と私はまた、どこに私を見つけるために探求して傾斜公共号[プログラマ]黄に行くことができます任意の質問がある場合は、フォローアップの詳細があるでしょうかJVM仮想マシン、および関連するインタビューの質問を取得し、学びます記事は、体系的にご期待ので、JavaWebを学ぶ方法など、発売しました。

はい、私はどこにあるビデオで述べた本や記事でお聞きしたいですか?私は準備ができて、あなたを与えています

リソースは、テキストに記載された私の公共号に、自由に対応するリソースを受信するための[プログラマ]黄斜め返信の「Java並行プログラミングを」自由受け取ることができます。

最後に書かれました

あなたはあなたにこの記事が参考に思うなら、あなたは「良い」ハを意味するものではありませんが、友人の前方円が私の最大のサポートあなたです、あなたのサポートが私の最大の励ましです。

この一連の記事上の任意の提案やコメントは、コメントはあなたのフィードバックを楽しみにして、私に教えても歓迎されています。

公開された293元の記事 ウォンの賞賛1597 ビュー123万+

おすすめ

転載: blog.csdn.net/a724888/article/details/104932471