JVM运行机制
JVM的启动过程
启动过程
JVM的基本结构
JVM通过ClassLoader将class文件加载到内存中
基本结构
-
PC寄存器
PC寄存器 -
方法区
方法区 -
Java堆
Java堆 -
Java栈
Java栈
静态方法和非静态方法的区别在于:非静态方法的局部变量表的第一个位置为引用
局部变量表的例子
函数的一次调用为一个帧栈
递归函数的帧栈
操作数栈
C++代码示例
栈上分配与堆上分配的对比
栈上分配的优点
栈、堆、方法区的交互
栈区的引用指向堆区的实例,而此时区方法区中取类信息
栈、堆、方法区的交互情况
内存模型
Java工作时候的内存模型情况
本地内存和主内存的分布
-
volatile关键字
02p_15.png
和内存模型相关的概念
可见性
有序性
指令重排
指令重排
指令重排的基本原则