上一篇Blog我们了解了字节码文件,本篇Blog来了解下JVM的内部构造为接下来的字节码文件的类加载、执行和垃圾回收做好基础准备,什么是JVM?到了本篇Blog才正式进入JVM的学习,JVM其实就是java的虚拟机,它将编译好的字节码文件翻译成机器能识别的机器语言,然后执行。主要包括类加载,执行(运行字节码指令),垃圾回收三个功能模块他们都作用于运行时数据区域。下图描述了各个功能模块作用的内存区域。
- 类加载机制: 虚拟机首先需要把编译完成的字节码文件通过类加载器来加载到运行时数据区域
- 运行时数据区域: 在运行时数据区里存储类Class文件元数据(方法区),对象和数组(堆),**方法参数局部变量(栈)**等。
- 执行引擎,执行引擎对运行时数据区域加载进来的字节码进行执行,执行完成后等待垃圾回收。
- 垃圾回收机制: Java语言的优势之一就是它的自动内存管理,主要回收运行时数据区域的堆内存里的数据
以下为JVM整体结构图,以及类加载器工作的位置:
完整的原版图片如下,感兴趣可以详细查阅