JVM-メモリモデルの概要

 VM概念モデル

1:プログラムカウンタ(プログラムカウンタレジスタ)

      (1)メタファー:スレッドは、表示ライン数が実行するバイトコードとして見ることができます        

    (2)スレッド間の関係は、各スレッドはそれ自身のプログラムカウンタを有しています

    (3)の役割:格納する仮想マシンのバイトコード命令アドレスが現在実行しているスレッド

2:スタックの仮想マシン(VMスタック)

スタックフレーム

   (1)定義:各メソッド呼び出しから、情報ローカル変数テーブル、オペランドスタック、動的リンク、方法輸出を格納するためのスタックフレームを作成します。スタックに、スタックにスタックのうちのフレームに対応する端部から各メソッド呼び出し、。

  (2)StackFlowOverErrorは:スレッド要求スタック深さが許可されている仮想マシンのスタックの深さを超えています。

  (3)OutOfMemoryErro:仮想マシンの動的拡張に適用するのに十分ではないメモリ。

3:ネイティブメソッドスタック(ネイティブメソッドスタック)

  (1)と仮想マシンのスタックの異なる場所

      ・仮想マシンは、Java実行スタックサービス(バイトコードサービス)であります

      ・ネイティブメソッドスタックネイティブメソッドは、サービスを実行しています。

        ワイヤ音声のJava Javaインターフェース、C ++で実装されているネイティブメソッドによってオンザフライでネイティブメソッド。

    どちらも似ました

  (2)仮想マシンと同じスタック、OutOfMemoryErrorがにStackOverflowErrorをスローします。

4:Javaヒープ( "ごみ" -heap)

  (1):すべてのスレッドが共有しています。

  (2):あなたは、仮想マシンの起動を作成します。

  (3):メイン管理領域のガベージコレクタ(GCメイン作業領域)。

  唯一の目的は、オブジェクトのインスタンスを格納することです。

  (4):昔に分けることができ、新しい世代の、新しい世代がサバイバーエリアから、サバイバー領域に、エデンのエリアに分けることができます。8のデフォルト率:1:1。

            

            

       図:A、B、Cの3つのオブジェクトの新世代を生成した後。

         第一GC:A、BおよびCは、ゾーンからゾーンへエデンから移動するうちに回復しました。

          第GC:いずれも回収することができるので、B、Cオフ回復倍、従ってにエリアに移しました。

         第三GC:Cはまだ回復することができませんでしたが、へDistrict地区からに転送されます。

         4 GC:Cは、....に領域から領域へとから転送CはまだGCことができない場合ので、15回繰り返し

         16 GC:この時点からCは、エリア内にある必要があり、古い時代に移動されます。

4:エリア法(方法エリア)

  (1):Javaヒープのように、すべてのスレッドが共有しています。

  (2):クラス情報を格納するための仮想マシンは、コードコンパイラとして、定数、静的変数、リアルタイムデータをロード。

 

おすすめ

転載: www.cnblogs.com/zgq7/p/12459926.html