JVM第一天-基础常识

一直有人讨论,java到底是解释型语言还是编译型语言呢?
其实它即是解释型,也是编译型。
一个java文件被编译成class文件后由classloader加载到内存,然后使用字节码解释器进行解释
还有一种情况是一段代码当被JVM认定执行次数比较多时,会将它缓存变成本地代码,然后使用JIT进行即时编译。(当然这是有条件的,而并非所有代码都可以直接即时编译)
最后都交由执行引擎去调用系统硬件完成。

JVM第一天-基础常识

JVM第一天-基础常识

为什么可以跨平台?因为依赖于class文件,只要可以编译成class文件,那你是什么语言在什么环境都可以。也就是说其实并不是java专属的

JVM第一天-基础常识
参考文档:https://docs.oracle.com/javase/specs/index.html

JVM它自己相当于就是一台虚拟的计算机,有自己的汇编指令集,还有自己的一套内存管理机制。

JVM第一天-基础常识

JVM是一种标准,基于它的实现有很多,我们日常使用的就是hotspot的实现
通过命令行输入“java -version”可以查看到。
azual zing 号称1ms垃圾回收,但是土豪专用。ZGS进行参考的它实现的
JVM第一天-基础常识

JDK JRE JVM的区别?
JVM是java运行依赖的虚拟机系统。
在JDK基础上,还需要一些核心类库的支持,也就是JRE。
而在JRE基础上,又增添了一些针对开发人员使用的各种工具,就是JDK了。

相关文章:

  • 2021-12-17
  • 2021-04-13
  • 2021-06-29
  • 2021-04-18
猜你喜欢
  • 2021-12-10
  • 2021-10-26
  • 2021-07-14
  • 2021-04-16
  • 2022-01-22
  • 2021-12-30
相关资源
相似解决方案