3分でJVMのエリートになることを教えます

4466 ワード

むかしむかし、1992年3月、NBが爆撃したコーヒー学校が誕生しました.その名前はJAVAです.学校の校則は極めて強く、普通の学生は臆病で、唯一のエリートのような人が残ることができます.あの人が「あなた」だと推測しないでください.
本色出演者名簿
名前
別名#ベツメイ#
略称
学校
Java Virtual Machine
JVM
教室
スタックスペース
Heap
先生
ごみ回収器
Minor GC/Major GC
学生
データ#データ#
Object
学校の平面図
俗名
権限の使用
略称
Eden教室
新入生
Eden
Survivor 0/1教室
優等生S0S1
Tenured/Old Generation教室
エリート生専用
Old
Metaspace教室
生徒会、校長専用
Metaspace
学校は新入生を歓迎する
  • 新入生は作業記録帳を受け取る.備考:(学生が宿題をしたかどうかを記録し、毎回1つの章を押す).
  • そして新入生は自分でEden教室に移動した.
  • Minor GC先生は宿題をしていないか、していないのは先生にマークされます.
  • マークされていない優等生は、自分でS0またはS1教室に移動し、備考:(この2つの教室には空が必要で、学生は直接空の教室に入ることができず、空の教室はMinor GC先生が手配して入る)、移動が終わったらEden教室の差生を除名する.
  • この2つの教室Minor GC先生は絶えず抜き取り検査をして、宿題をした人は先生が点呼した後に別の教室に移動して順番に座って、宿題をしていない学生は残って、学校は思想教育をしてから除名します.
  • Minor GC先生は抽選で宿題を調べるたびに、1点を追加します.もし点数が指定点数に達したら、尖子生Old教室に入ることができます.
  • S0またはS1教室が満員になったら、おめでとうございます.この人たちはエリート生に混じって、Old教室に移動することができます.ここには別のMajor GC先生が抜き取り検査を担当しています.Minor GC先生ほど厳しくなくて、楽しいでしょう.
  • 学生の宿題の記録帳がいっぱいになったら、申し訳ありませんが、除名されます.私たちの学校は暇で面倒なので、宿題の記録帳を出すのがおっくうです.
  • Metaspace教室、もしあなたが校長や学生会と少し関係があれば入って、除名される心配はありません.ハハ.

  • 学校は新入生の板報の内幕を歓迎します
  • は、オブジェクトが作成されたGC を記録するために使用され、GC毎に生存したプラス1歳を記録する.
  • 新しく作成されたすべてのオブジェクトは、Edenの領域にあります.
  • Minor GCは、オブジェクトが参照されているかどうかをチェックし、マークされていない場合はマークします.
  • Minor GCを実行すると、Edenで生存しているオブジェクトはS0またはS1の領域に移動します.
  • 移動終了後、Minor GCEden領域をクリアし、生存対象年齢値を1加算する.

  • は2回目のMinor GCで、(3,4)ステップを繰り返し実行し、このとき別のS1領域が役に立ちます.
  • クリア
  • もう一度Minor GCを実行して効果図を見てみましょう.
  • クリア
  • システムが設定した高齢者の年齢値が4年であると仮定すると、3番のデータは高齢者の地域にアップグレードすることができます.
  • クリア
  • Survivorエリアが満杯になった後、Tenrued/Old Generationに直接移行します.次のような状況では、Survivorエリアの対象はすべて生存し、スペースが足りません.
  • クリア後のデータ
  • は、システムが設定した年老いた世代の年齢値が20回であると仮定し、20回目以降、消去されるMajor GCは自動的に処理され、マーキングされる.
  • パージ
  • Metaspaceエリアで、GC Rootsに属しています.
  •     (         )      。
                  。
               。
          JNI(     Native  )     。
  • Old Generationも満杯になったら、よく見かけるOOMの異常を報告します.

  • 実例
    1.張三李四さんは初日にこのJVM学校に来ました.
    #          
    Object zhangsan = new Object();
    Object lisi = new Object();

    2.かわいい先生が、この問題ができる学生を見つけ出すと言っています
    # zhangsan   ,  
    zhangsan.do();
  • この時Minor GCの先生が現れました.
  • #   lisi        ,        
    # GC            ,zhangsan       。
  • Minor GC先生執行家法
  • #   zhangsan    `S0`      
    #         lisi

    3.zhangsan S0教室に来ました
    #        ,       
    # Minor GC            ,         
    #       `S1`      ,     

    4.zhangsan S1教室に来ました
    #       S0/S1     ,      15  
    # `Minor GC`     ,          

    5.zhangsanはTenrued/Old Generation教室に来ました.ここのMajor GC先生はやはりよく私たちに会いに来ませんでした.
    # zhangsan       5     ,             
    #   zhangsan      ,       、   ,   。

    ZhangSan GameOver全劇終了
    PS備考:この文章は簡単なJVM知識図解に属し、理解しやすいが、JVMの内容はまだ非常に多く、ここは氷山の一角にすぎない.