JVM(Java Virtual Machine)整体框架结构介绍

JVM框架结构

在这里插入图片描述

执行Main.class的顺序

  • 先通过类装载系统把文件字节码装载到方法区

  • 再通过字节码执行引擎执行相关代码


完整 JVM 构成的三个部分

  • 类装载子系统
  • 运行时数据区(内存模型)
  • 字节码执行引擎

浅谈堆

大家学过jdk之后,估计都知道它存放的都是new出来的对象,深一点就会知道伊甸园,幸存者区和老年代,还有gc等等


浅谈栈

栈又叫虚拟机栈或线程栈,当执行一个方法时,会开辟一块栈帧,里面主要存放一些局部变量 ,操作数栈,动态连接,方法出口 ,执行完方法后弹栈.


浅谈本地方法栈

底层有C语言实现,C语言是所有语言的前辈,为java虚拟机提供Native方法


虚拟机栈和本地方法栈的区别

本地方法栈与虚拟机栈的作用完全一样,在HotSpot虚拟机中,本地方法栈与虚拟机栈是同一块内存区域。

他俩的区别无非是:

  • 本地方法栈为虚拟机使用的Native方法服务,
  • 而虚拟机栈为JVM执行的Java方法服务。

浅谈程序计数器

  • 计数器记录的是正在执行的虚拟机字节码指令的地址;
  • 如果正在执行的是一个Native方法,这个计数器值为空

简单的说,就是看程序执行到第几行


浅谈方法区

它用于存储已被虚拟机加载的类信息、常量、静态变量、即编译器编译后的代码等数据


浅谈常量池

运行时常量池是方法区的一部分,存放字面量与符号引用

发布了44 篇原创文章 · 获赞 14 · 访问量 7056

猜你喜欢

转载自blog.csdn.net/weixin_43508555/article/details/104633001