jvm

作者: Mythqian | 来源:发表于2021-03-27 13:47 被阅读0次

    1、运行过程
    (1)JIT 将热点代码直接编译到系统里成本地代码,加快执行速度


    1.png

    2、运行时数据区 结构


    2.png
    (1)程序计数器(线程私有):
    ① 为什么需要,因为系统有数据片轮转机制,可能会暂停,所以需要记录停在哪里,和下次从哪里继续;
    ② 唯一不会OOM的

    (2)虚拟机栈(线程私有):存储当前线程运行方法所需的数据、指令、返回地址
    ① 栈帧(方法):局部变量表、操作数栈、动态链接、返回地址
    ② 操作数栈: java解释执行(c基于硬件寄存器)
    ③ 动态链接:方法分派(静态和动态)
    (3)本地方法栈(线程私有)
    (4)方法区:(<= jdk1.7 永久代 >=jdk1.8 元空间,机器内存)
    ① 类信息
    ② 常量
    ③ 静态变量
    ④ 即时编译期编译后的代码
    (5)java堆
    ① 对象实例
    ② 数组

    3、栈的优化
    (1)方法内联


    3.png

    (2)栈帧之间共享数据

    相关文章

      网友评论

          本文标题:jvm

          本文链接:https://www.haomeiwen.com/subject/zybehltx.html