什么是JVM?
JVM是java虚拟机。顾名思义,虚拟机?就是模拟一个计算机的意思。也就是它具有计算机的功能。所以Java虚拟机的作用就是直接将.CLASS文件里面的java字节码文件翻译成机器语言的。
JVM是如何工作的?
要想知道JVM如何工作就应该搞清JVM是有什么组成的。
JVM和实体机一样都有指令集。这里我们称为JVM字节码编码集。
除了这个JVM还需要哪些组成部分?
第一个:类加载器:类加载器就是将.CLASS文件加载到JVM中。(后面会详细说一下)
第二个:执行引擎:这个就像实体机的CPU,负责执行.CLASS文件包含的字节码指令
第三个:内存区:相当于实体机的存储单元,存放调用数据的。
第四个:本地方法调用,用c或c++实现本地方法接口。这里要明白一个词JNI(java 本地接口)
通过第四个我们经常说java底层是c或者c++实现就不难理解了。以上叙述的步骤就是JVM的工作流程。
这里还要明白几点零碎知识:
1. JVM是基于栈的架构
2. JVM方法调用分为java方法调用和本地方法调用
3. JVM运行实际程序的实体是线程。