JVM
https://mp.weixin.qq.com/s/z5ZDzlIB1w2VhlVW_tLviw
https://zhuanlan.zhihu.com/p/34426768
一、JVM是什么?
JVM全称为Java Virtual MAchine-Java虚拟机。一次编译,多次运行。
JVM是java上的一个虚构出来的计算机,是一个位于Java与操作系统之间的中间态。有自己完善的硬件结构,如处理器、堆栈、寄存器等,还具有相应的指令系统。
JVM的五大结构:类装载器(ClassLoader)子系统、运行时数据区、执行引擎、本地方法接口和垃圾收集模块
二、JVM作用是什么?
JVM是java字节码执行的引擎,还能优化java字节码,使之转化成效率更高的机器指令。
JVM中类的装载是由类加载器和它的子类来实现的,类加载是java运行时一个重要的系统组件,负责在运行时查找和装入类文件的类。
不同的平台对应着不同的JVM,在执行字节码(class文件)时,JVM负责将每一条要执行的字节码送给解释器,解释器再将其翻译成特定平台换将的机器指令并执行,这样就实现了跨平台运行。
java程序运行与JVM的关系:
1.java源文件编译生成.class文件(字节码)
2.字节码由JVM解释运行。
三、JVM运行时数据区是什么?
1.程序计数器https://blog.csdn.net/leaf_0303/article/details/78953669
2.JAVA虚拟机栈https://www.cnblogs.com/newAndHui/p/11168791.html
3.JVM本地方法栈https://www.jianshu.com/p/8a775d747c47
4.JAVA堆
5.JAVA方法区
6.运行时常量池