欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

JVM_01 总体概述

发布时间:2025/3/15 编程问答 28 豆豆
生活随笔 收集整理的这篇文章主要介绍了 JVM_01 总体概述 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

写在最前面:

  • 什么是JVM?
  • ①. JVM 是 java虚拟机,是用来执行java字节码(二进制的形式)的虚拟计算机
    ②. jvm是运行在操作系统之上的,与硬件没有任何关系

  • Java的跨平台及原理
  • ①. 跨平台:由Java编写的程序可以在不同的操作系统上运行:一次编写,多处运行

    ②. 原理:编译之后的字节码文件和平台无关,需要在不同的操作系统上安装一个对应版本的虚拟机(JVM)

  • JVM的分类
  • ①. 类加载子系统

    ②. 运行时数据区 [ 我们核心关注这里 的栈、堆、方法区 ]

    ③. 执行引擎(一般都是JIT编译器和解释器共存) JIT编译器(主要影响性能):编译执行;
    一般热点数据会进行二次编译,将字节码指令变成机器指令。将机器指令放在方法区缓存 解释器(负责相应时间):逐行解释字节码

  • 三大商业虚拟机(掌握)
    • ①. Sun HotSpot 提起HotSpot VM,相信所有Java程序员都知道,它是Sun
      JDK和OpenJDK中所带的虚拟机,也是目前使用范围最广的Java虚拟机
      在2006年的JavaOne大会上,Sun公司宣布最终会把Java开源,并在随后的一年,陆续将JDK的各个部分(其中当然也包括了HotSpot
      VM)在GPL协议下公开了源码, 并在此基础上建立了OpenJDK。这样,HotSpot VM便成为了Sun
      JDK和OpenJDK两个实现极度接近的JDK项目的共同虚拟机。
      在2008年和2009年,Oracle公司分别收购了BEA公司和Sun公司,这样Oracle就同时拥有了两款优秀的Java虚拟机:JRockit
      VM和HotSpot VM。 Oracle公司宣布在不久的将来(大约应在发布JDK 8的时候)会完成这两款虚拟机的整合工作,使之优势互补。
      整合的方式大致上是在HotSpot的基础上,移植JRockit的优秀特性,譬如使用JRockit的垃圾回收器与MissionControl服务,
      使用HotSpot的JIT编译器与混合的运行时系统
    • ②. BEA JRocket
      专注于服务端应用(JRockit内部不包含解析器实现,全部代码都靠即时编译器编译后执行) Jrockit JVM 是世界上最快的jvm3.
      2008年被oracle收购
    • ③. iBM J9 市场定位与hotspot接近,服务器端,桌面应用,嵌入式等
      目前,是影响力的三大商业虚拟机之一

    总结

    以上是生活随笔为你收集整理的JVM_01 总体概述的全部内容,希望文章能够帮你解决所遇到的问题。

    如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。