JVM学习笔记一

JVM运行机制

JVM的启动过程

启动过程

JVM的基本结构

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


基本结构
  • PC寄存器


    PC寄存器
  • 方法区


    方法区
  • Java堆


    Java堆
  • Java栈


    Java栈

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


    局部变量表的例子

    函数的一次调用为一个帧栈
    递归函数的帧栈
操作数栈
C++代码示例
栈上分配与堆上分配的对比
栈上分配的优点

栈、堆、方法区的交互

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


栈、堆、方法区的交互情况

内存模型

Java工作时候的内存模型情况
本地内存和主内存的分布
  • volatile关键字


    02p_15.png

和内存模型相关的概念

可见性
有序性
指令重排
指令重排

指令重排的基本原则

解释运行和编译运行

总结

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容