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

news/2025/2/1 17:57:50/

①. 什么是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/news/1568478.html

      相关文章

      ASP.NET Core WebAPI的异步及返回值

      目录 Action方法的异步 Action方法参数 捕捉URL占位符 捕捉QueryString的值 JSON报文体 其他方式 Action方法的异步 Action方法既可以同步也可以异步。异步Action方法的名字一般不需要以Async结尾。Web API中Action方法的返回值如果是普通数据类型,那么返回值…

      Java Web-Tomcat Servlet

      Web服务器-Tomcat Web服务器简介 Web 服务器是一种软件程序,它主要用于在网络上接收和处理客户端(如浏览器)发送的 HTTP 请求,并返回相应的网页内容或数据。以下是关于 Web 服务器的详细介绍: 功能 接收请求&#…

      《解锁DeepSeek本地部署:开启你的专属AI之旅》

      一、DeepSeek 的魅力与本地部署的意义 在人工智能的璀璨星空中,DeepSeek 宛如一颗耀眼的新星,自问世以来便吸引了无数目光。它是由中国人工智能初创企业深度求索推出的大模型,凭借着一系列卓越的技术创新和强大的功能表现,在全球 …

      解锁 Python 与 MySQL 交互密码:全方位技术解析与实战攻略

      目录 一、引言 二、环境准备 2.1 安装 MySQL 2.2 安装 Python 及相关库 2.2.1 使用 mysql - connector - python 2.2.2 使用 pymysql 三、基本连接与操作 3.1 连接到 MySQL 数据库 3.2 创建游标对象 3.3 执行 SQL 查询 3.3.1 查询单条记录 3.3.2 查询多条记录 3.4…

      网络爬虫学习:应用selenium获取Edge浏览器版本号,自动下载对应版本msedgedriver,确保Edge浏览器顺利打开。

      一、前言 我从24年11月份开始学习网络爬虫应用开发,经过2个来月的努力,于1月下旬完成了开发一款网络爬虫软件的学习目标。这里对本次学习及应用开发进行一下回顾总结。 前几天我已经发了一篇日志(网络爬虫学习:应用selenium从搜…

      深度学习篇---数据存储类型

      文章目录 前言第一部分:C语言中的数据存储类型1. char(通常是8位)优点缺点 2. short(通常是16位)优点缺点 3. int(通常是32位)优点缺点 4. long(通常是32位或64位)优点缺…

      工业相机常用词语解释

      线阵相机和面阵相机: 线阵相机,是采用线阵图像传感器的相机。线阵图像传感器以CCD为主, 一行的数据可以到几K甚至几十K,但是高度只有几个像素,行频很高,可以到每秒几万行,适合做非常高精度、宽…

      PHP Error处理与优化指南

      PHP Error处理与优化指南 引言 在PHP编程中,错误处理是保证程序稳定性和用户体验的关键环节。良好的错误处理机制不仅能帮助开发者快速定位问题,还能提升应用程序的健壮性。本文将详细介绍PHP错误处理的方法、技巧以及优化策略。 一、PHP错误处理概述 1.1 错误类型 PHP中…