Java虚拟机——JVM体系结构

JVM(Java虚拟机)

JVM(Java Virtual Machine)Java虚拟机是学习Java的一个重要知识点,所以我们来开启JVM的学习之路吧!

PS:本文需要一些Java基础才能更好的理解

JVM体系结构

JVM的学习就先从体系结构开始,结构如下图


  • 字节码文件(Class files)——字节码文件是我们在编译源文件(.java)之后产生的
  • 类加载器(Class Loader)——通过解析字节码文件的类相关的信息,并通过类加载器加载所有需要的信息
  • 运行数据区(Runtime Data Area)——该区域是在Java程序运行的时候使用到的数据的存放、执行位置等
  • 方法区(Method Area)——方法区通常存放比较稳定的共享资源(单进程内),例如:类信息、字面量、常量等
  • 堆(heap)——通常存储可回收的共享资源(单进程内),例如:大部分对象、数组元素等
  • Java栈(Java stack)——存储线程内使用资源,并且线程私有,存储的资源有:基础数据类型、部分引用数据类型的数据、部分引用数据类型的引用等
  • 本地方法栈(Native Method Stack)——Java在使用某些方法的时候,会调用一些native的方法,如图:


  • 程序计数器(Program Counter Register)——程序计数器为线程,线程私有,记录程序执行的位置,当程序执行到本地方法的时候程序计数器置为undefined
  • 执行引擎(Execution Engine)——执行引擎负责执行字节码的运行逻辑
  • 本地方法接口(Native Interface)——让Java有着更好的扩展能力,利用C/C++等实现的高效代码来为Java程序提供良好的扩展实现,Java程序本身通过直接调用即可完成。

总结

这期非常简单的介绍了一些JVM的体系结构,希望可以给大家抛砖引玉的作用,感兴趣的小伙伴自行查找资料。之后不定期的围绕虚拟机进行展开交流。

你可能感兴趣的:(Java虚拟机——JVM体系结构)