分享

聊聊JVM(七)一张图说明JVM运行时状态

 WindySky 2017-10-25 发布于广东

关于JVM运行时的内存分布有大量文章写过,没必要重复,在一个博客上看到下面这张图,很好地说清楚了JVM运行时内存各区域的细节,拿来引用一下。


下图来自JVM Internals 这篇文章。里面总结了JVM基本的一些知识,很全面,值得看下。




JVM的基础知识分布


1. JVM运行时内存分布以及各区域的组件细节

-- Program Counter

-- JVM栈

   -- Frame

       -- Local Variables table

       -- Operation Stack

       -- Return value

       -- Current Class Constant Pool Reference

-- Heap

   -- Young Generation

       -- Eden

       -- S0

       -- S1

   -- Old Generation

-- Non Heap

   -- 永久代

        -- 方法区

            -- Class元数据

                -- 运行时常量池

        -- String Table

   -- Code Cache


2. Class文件结构及各部分细节

  1. ClassFile {  
  2.     u4          magic;  
  3.     u2          minor_version;  
  4.     u2          major_version;  
  5.     u2          constant_pool_count;  
  6.     cp_info     contant_pool[constant_pool_count – 1];  
  7.     u2          access_flags;  
  8.     u2          this_class;  
  9.     u2          super_class;  
  10.     u2          interfaces_count;  
  11.     u2          interfaces[interfaces_count];  
  12.     u2          fields_count;  
  13.     field_info      fields[fields_count];  
  14.     u2          methods_count;  
  15.     method_info     methods[methods_count];  
  16.     u2          attributes_count;  
  17.     attribute_info  attributes[attributes_count];  
  18. }  

3. Java指令集各指令


4. ClassLoader 层次结构 / 加载细节 / 原理


5. GC的基本原理 / 各种GC收集器算法


6. JVM调优 / 各种工具


7. Java对象模型OOP-Klass


8. JVM线程模型


9. 字节码增强技术 -- ASM / Javassist / Cglib / Java Proxy / Instrument



    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多