JVM学习笔记一

JVM运行机制

JVM的启动过程

JVM学习笔记一_第1张图片
启动过程

JVM的基本结构

JVM通过ClassLoader将class文件加载到内存中


JVM学习笔记一_第2张图片
基本结构
  • PC寄存器


    JVM学习笔记一_第3张图片
    PC寄存器
  • 方法区


    JVM学习笔记一_第4张图片
    方法区
  • Java堆


    JVM学习笔记一_第5张图片
    Java堆
  • Java栈


    JVM学习笔记一_第6张图片
    Java栈

    静态方法和非静态方法的区别在于:非静态方法的局部变量表的第一个位置为引用


    JVM学习笔记一_第7张图片
    局部变量表的例子

    函数的一次调用为一个帧栈
    JVM学习笔记一_第8张图片
    递归函数的帧栈
JVM学习笔记一_第9张图片
操作数栈
JVM学习笔记一_第10张图片
C++代码示例
JVM学习笔记一_第11张图片
栈上分配与堆上分配的对比
JVM学习笔记一_第12张图片
栈上分配的优点

栈、堆、方法区的交互

栈区的引用指向堆区的实例,而此时区方法区中取类信息


JVM学习笔记一_第13张图片
栈、堆、方法区的交互情况

内存模型

JVM学习笔记一_第14张图片
Java工作时候的内存模型情况
JVM学习笔记一_第15张图片
本地内存和主内存的分布
  • volatile关键字


    JVM学习笔记一_第16张图片
    02p_15.png

和内存模型相关的概念

JVM学习笔记一_第17张图片
可见性
JVM学习笔记一_第18张图片
有序性
JVM学习笔记一_第19张图片
指令重排
JVM学习笔记一_第20张图片
指令重排

JVM学习笔记一_第21张图片
指令重排的基本原则

解释运行和编译运行

JVM学习笔记一_第22张图片

总结

JVM学习笔记一_第23张图片

你可能感兴趣的:(JVM学习笔记一)