JVM自学笔记

字节码和机器码的区别:

机器码是给cpu读取运行的,速度快,但是难懂。

字节码是一种二进制的中间码,需要JVM翻译成机器码。

 

JDK、JRE、JVM
JDK:包含JRE和编译器等工具

JRE:是包含运行类库和JVM
JVM:  是虚拟机,Java正是基于JVM才实现了跨平台编译

openJDK和OracleJDK的区别,简单地说就是OpenJDK是sun公司公开免费的,而OracleJDK是收购sun公司以后的收费版本,两者差别并不大。

jvm和Hostpot的关系,严格来说JVM只是一种虚拟机规范,而Hostpot才是基于这个规范产生的商用产品,也就是咱们口头上的JVM

JVM和JAVA的关系:

  Java代码那编译以后通过JDK生成字节码,字节码通过JVM生成机器码

JVM的运行模式:

Server模式:启动慢,但是优化的好,执行效率更高
Client模式:启动快,优化的差一些,执行效率低一些

基本上终端是Client模式,而服务端是Server模式

 

JVM的架构

 

 JVM程序执行流程

 

 编译器和解释器的协调工作流程

 

 java虚拟机一开始是通过解释器进行解释的执行,后来有JIT编译器是用于那些频繁调用的代码或者代码块,便于提高效率。你可以理解为提前解释好了,用的时候拿来就用。
JIT 的编译方式是动态编译,就是运行的时候进行编译, 而相对的,在事前编译就是静态编译。

posted @ 2022-10-26 17:51  蓝海的bug本  阅读(38)  评论(0编辑  收藏  举报