jvm-jvm内存结构

作者: 土豆有点 | 来源:发表于2018-05-27 17:06 被阅读5次

1.JVM的体系结构

image.png

JVM的结构基本上由上面的四部分组成。

  • 1.类加载器,在JVM启动时或者类运行时需要的class加载到JVM
  • 2.执行引擎,执行引擎的任务是负责执行class文件中包含的字节指令,相当于实际机器的CPU
  • 3.内存区,将内存划分成若干个区以模拟实际机器上的存储、记录和调度功能模块,如实际机器上的各种功能的寄存器或者pc指针的记录器。
  • 4.本地方法调用,调用C或C++实现的本地方法的代码返回的结果。

JVM内存管理

ca608a15d76706ba4a9d23793c86aabda38b35b417da741f184ce02cd19ee464.png

但这个图的栈帧应该少了一个操作栈。(不是十分重要)
不过帧数据区存放了指向常量池的指针地址,当某些指令需要获得常量池的数据时,通过帧数据区中的指针地址来访问常量池的数据。此外,帧数据区还存放方法正常返回和异常终止需要的一些数据。
JVM实现里,有一种基于栈的指令集(Hotspot,oracle JVM)
基于栈的指令集有接入简单、硬件无关性、代码紧凑、栈上分配无需考虑物理的空间分配等优势,


image.png

基于栈的Hotspot的执行过程如下:


756003-20150921153455772-1445716955.gif

相关文章

网友评论

    本文标题:jvm-jvm内存结构

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