当前位置: 首页 > article >正文

JVM01_概述、跨平台原理、分类、三大商业虚拟机

①. 什么是JVM?

  • ①. JVM 是 java虚拟机,是用来执行java字节码(二进制的形式)的虚拟计算机

  • ②. jvm是运行在操作系统之上的,与硬件没有任何关系

②. Java的跨平台及原理

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

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

(Java虚拟机不和包括java在内的任何语言绑定,它只与class文件这种二进制文件格式所关联。无论使用何种语言进行软件开发,只要将源文件编译为正确的Class文件,那么这种语言就可以在Java虚拟机上执行,可以说,统一而强大的Class文件结构,就是Java虚拟机的基石、桥梁)

③. JVM的分类

  • ①. 类加载子系统

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

  • ③. 执行引擎(一般都是JIT编译器和解释器共存)

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

 

 

④. 三大商业虚拟机

    • ①. Sun HotSpot

    1. 提起HotSpot VM,相信所有Java程序员都知道,它是Sun JDK和OpenJDK中所带的虚拟机,也是目前使用范围最广的Java虚拟机
    2. 在2006年的JavaOne大会上,Sun公司宣布最终会把Java开源,并在随后的一年,陆续将JDK的各个部分(其中当然也包括了HotSpot VM)在GPL协议下公开了源码, 并在此基础上建立了OpenJDK。这样,HotSpot VM便成为了Sun JDK和OpenJDK两个实现极度接近的JDK项目的共同虚拟机。

    3. 在2008年和2009年,Oracle公司分别收购了BEA公司和Sun公司,这样Oracle就同时拥有了两款优秀的Java虚拟机:JRockit VM和HotSpot VM。 Oracle公司宣布在不久的将来(大约应在发布JDK 8的时候)会完成这两款虚拟机的整合工作,使之优势互补。 整合的方式大致上是在HotSpot的基础上,移植JRockit的优秀特性,譬如使用JRockit的垃圾回收器与MissionControl服务, 使用HotSpot的JIT编译器与混合的运行时系统

    4. ②. BEA JRocket
    5. 专注于服务端应用(JRockit内部不包含解释器实现,全部代码都靠即时编译器编译后执行)
    6. Jrockit JVM 是世界上最快的jvm3. 2008年被oracle收购
    7. ③. iBM J9
    8. 市场定位与hotspot接近,服务器端,桌面应用,嵌入式等
    9. 目前,是影响力的三大商业虚拟机之一

       


      http://www.kler.cn/a/524949.html

      相关文章:

    1. 2025春晚刘谦魔术揭秘魔术过程
    2. 高级同步工具解析
    3. C++/stack_queue
    4. CMake常用命令指南(CMakeList.txt)
    5. 【Qt】多线程
    6. c++多态
    7. 未来无线技术的发展方向
    8. Python 切片(Slicing):列表、元组与字符串的高效操作
    9. Python爬虫获取item_fee-获得淘宝商品快递费用接口
    10. 通过Ngrok实现内网穿透助力远程开发
    11. 25【数组的理解】
    12. Vue 3 中的 watch:监视数据的变化
    13. lambda 表达式:Python中的极简艺术
    14. 微服务入门(go)
    15. Ceph:关于Ceph 中 RADOS 块设备快照克隆管理的一些笔记整理(12)
    16. 基于单片机的车载传感器数据处理系统
    17. matlab提取滚动轴承故障特征
    18. 2025数学建模美赛|赛题翻译|D题
    19. 【每日一A】2015NOIP真题 (二分+贪心) python
    20. 第24篇 基于ARM A9处理器用汇编语言实现中断<六>
    21. sqlzoo答案5-SUM and COUNT
    22. MATLAB中lettersPattern函数用法
    23. python学opencv|读取图像(五十)使用addWeighted()函数实现图像加权叠加效果
    24. 【JavaWeb06】Tomcat基础入门:架构理解与基本配置指南
    25. 【Hadoop】Hadoop 概述
    26. 选择的阶段性质疑