JVM(A):なぜ、仮想マシンを学びます

他の多くと同じように、私はそうは弾丸をかむと見て、ちょうど使用する面接の必要があるため、Java仮想マシンとの接触に入って来ました。なぜならインタビュー:なぜそんなに多くの人々は、この問題は、彼らの答えは仮想マシンに勉強したいです。しかし、私は、私はその学習はインタビューで、しかし、言語のJavaのより深い理解に、だけでなく、将来のオンライントラブルシューティング問題の基礎を築くことだけで仮想マシンではありません見つける研究と戦闘の数年を可決しました。

私の最初のポイントについての最初の話:に深いJava言語の理解のJava仮想マシンを学びます。1年か2年の友人のためだけの仕事では、各APIは、当然のJavaの様々な細部の綿密な調査を行っていない、調理使用していませんでした。しかし、次の3人の友人の仕事、あなたはバイトコードレベルの分析に深く行かなければならない問題を解決するために多くの時間のために、あなたが正確な結論を得ることができますが、それは、バイトコードの仮想マシンの一部です。

例えば、我々は、我々はすべてそれが真と偽の2つの値を、持っていることを知って、ブールブールを使用しました。しかし、あなたは、実行時に実際には、Java仮想マシンは何のブールブールこのタイプではないことを知っています。1と0を表す仮想マシンで使用される整数ブール型。

例えば、我々はすべてのクラスパスとクラス名が一意にクラスを識別することを知っているが、実際にはない場合。それとも、我々は唯一の表面上の結論で言うように。あなたは、仮想マシンレベル、クラスローダのクラスパス、クラスのクラス名の前にのみ意思決定に深く行けば。二つの異なるクラスローダは、クラスのクラスファイルでそれらをロードする場合には、であり、これらの2つのクラスがロードされたことをクラスが異なっています。

このような多くの例があります。仮想マシンの基本のいくつかを理解していない場合は、Javaは、このレベルで学ぶことを学ぶ、深さの詳細の一部を理解することは困難です。

それから私は私の第二の点に話をしたい:仮想マシンの学習は、オンライントラブルシューティングのための基盤です。我々は確かに時々問題に、オンライン・マシン上でJavaアプリケーションを展開することを知っています。自分のネットワーク、システム、問題が多いJavaアプリケーションの問題の除去は、Java仮想マシンのメモリが問題です。どちらのメモリ、およびGC多い原因遅い応答のいずれかのうちのように。

どのようにしてこれらの問題を解決するには?まず、あなたはログにそれを読むことを学ぶ必要があります。そして、あなたは、Java仮想マシンの内容の一部であるGCログを、理解できるようにする必要があります。GCは、あなたが読んで記録します、そしてあなたがなど、どのような若い世代、古い時間、永久世代、メタデータの領域を理解する必要があり、これらは、Java仮想マシンのメモリモデルです。あなたは、あなたがJava仮想マシンのガベージコレクション、彼らが使用するガベージコレクションのアルゴリズムがどのような長所と短所、のようなものである方法を知っている必要があり、Java仮想マシンのメモリモデルを理解してください。次いで、様々なガベージコレクタの特性があります。

あなたはこれらすべてのものが関連している、参照してください。あなたは、Javaアプリケーションは、あなたがGCログに学ばなければならない、オンラインクラッシュ解決したいです。GCは、我々は、Java仮想マシンのメモリモデルを学ばなければならない、理解して記録します。Java仮想マシンのメモリモデルを理解するには、ガベージコレクションなどに学ばなければなりません。

なぜ仮想マシンを学ぶこと、そして、私はこのコラムを書く理由を言いたいです。

おそらく、それはそう他では、仮想マシンの市場情報は、非常に濃縮されています。理論の種類、あなたは「Java仮想マシンの理解の深い。」周志明教師を見ることができます 戦闘のタイプは、あなたは、Ge鳴先生の「本当のJava仮想マシン」を参照してくださいすることができます 私は同じ内容を書き込むことが合理的でないようで、重複コンテンツのほとんどを書いてあるでしょう。最初に私は同じことを思ったが、その後私は、私は私自身の理解を持って、私はあなたと共有したいと考えてポイントを理解するためにいくつかの知識で見つかりました。必然的にいくつかの重複領域ではなく、人々のためのアイデアを書くと同じがありますが、自然に同じではないという意味、同じではありません。

「Java仮想マシンの深い理解」と「実際の戦闘Java仮想マシン、」と比較すると、私はいくつかの知識を確認するために、より浅くかつ容易のいくつかを書く必要があります。この列には、ソースコード、バイトコード、ネイティブコードは、メモリ、ガベージコレクションに関与この知識センターのすべてについて書くと話にこの視点をロードしていること、手がかりを書くための論理的な方法となります。このように、比較的直列にすべての知識ポイントを持っているより多くのことができ、より論理的に言えば。一緒に文字列に論理的な方法すべての知識ポイントでの希望は、私たちがよりよく理解することが、初心者にはこのようなものを知っているが、また、なぜ知っているだけではなくてみましょう。

この事を望んで決定した後、私は2ヶ月前に手書きの最初のドラフトで始まる、本を見ることを得るために毎朝、6時の準備を始めています。しかし、簡単な言葉でコラムを書くことは、簡単で、時にはあまりにも厳しいが、記事は出産死亡し作るのは簡単ではありません。私がこれを書いている時点で、私は大体書き込みにはっきりマネージャ記事の章を持っているが、内容はまだ非常に明確ではありません。しかし、私は送っていない場合、または多分問題がある可能性がないことを知っています。あまりにも長い間書かれているので、おそらくあまりにもドラッグを終えることはありません。時には、あまりにも完璧の追求ではなく、良いこと。したがって、私たちは私が記事を改善するために見てより多くのメイク超える提案を歓迎します。

あなたは私に興味があるなら、私はフォローアップ記事の髪を見ることができていること。あなたが興味を持っJava仮想マシン上の友人を持っている場合は、あなたも一緒に引っ張ることを学ぶためにそれらを招待し、彼らに転送することができます。

おすすめ

転載: www.cnblogs.com/dtdyq/p/11995336.html