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

embedded/2025/2/4 3:02:20/

①. 什么是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.ppmy.cn/embedded/159353.html

      相关文章

      基于java(springboot+mybatis)汽车信息管理系统设计和实现以及文档

      基于java(springbootmybatis)汽车信息管理系统设计和实现以及文档 🍅 作者主页 网顺技术团队 🍅 欢迎点赞 👍 收藏 ⭐留言 📝 🍅 文末获取源码联系方式 📝 🍅 查看下方微信号获取联系方式 承接各…

      C语言--分支循环实践:猜数字游戏

      在这次的实践项目中,需要编写一个可以在控制台运行的猜数字的游戏。 1. 游戏要求 电脑自动生成1~100的随机数玩家输入要猜的数字,猜数字的过程中根据猜的数字的大小给出猜大了猜小了的反馈,直到猜对游戏结束。 2. 游戏设计思路 2.1 游戏界…

      es6中关于let的使用以及案例,包括但不限于块级作用域,不允许重复声明,没有变量提升,暂存性死区,不与顶层对象挂钩

      ES6 let 关键字完整指南 1. 块级作用域 1.1 let vs var 作用域对比 // var - 函数作用域 function varExample() {var x 1;if (true) {var x 2; // 同一个 xconsole.log(x); // 2}console.log(x); // 2 }// let - 块级作用域 function letExample() {let x 1;if (true…

      Dubbo view

      1、 说说Dubbo核心的配置有哪些? 答: 配置 配置说明 dubbo:service 服务配置 dubbo:reference 引用配置 dubbo:protocol 协议配置 dubbo:application 应用配置 dubbo:module 模块配置 dubbo:registry 注册中心配置 dubbo:monitor 监控中心配置 dubbo:pr…

      【数据结构与算法】九大排序算法实现详解

      文章目录 Ⅰ. 排序的概念及其运用一、排序的概念二、常见的排序算法三、排序算法的接口四、测试算法接口附:Swap接口(使用异或的方法实现) Ⅱ. 排序算法的实现一、插入排序二、希尔排序( 缩小增量排序 )三、选择排序四、堆排序五、冒泡排序六…

      C++中的析构器(Destructor)(也称为析构函数)

      在C中,析构器(Destructor)也称为析构函数,它是一种特殊的成员函数,用于在对象销毁时进行资源清理工作。以下是关于C析构器的详细介绍: 析构函数的特点 名称与类名相同,但前面有一个波浪号 ~&a…

      第二篇:多模态技术突破——DeepSeek如何重构AI的感知与认知边界

      ——从跨模态对齐到因果推理的工程化实践 在AI技术从单一模态向多模态跃迁的关键阶段,DeepSeek通过自研的多模态融合框架,在视觉-语言-语音的联合理解与生成领域实现系统性突破。本文将从技术实现层面,解构其跨模态表征学习、动态融合机制与…

      计算机网络部分知识点(王道考研笔记)

      计算机网络体系结构(概念、框架)(选择填空题) 什么是计算机网络? 计算机网络的概念:计算机网络是一个将众多分散的、自治的计算机系统,通过通信设备与线路连接起来,由功能完善的软…