JVM内存结构-1.2虚拟机跨平台的根基

java跨平台的真相

- 虚拟机做中介

  • 所谓虚拟机,就是一台虚拟的计算机。它是一款软件,用来执行一系列虚拟计算机指令。
  • 大体上,虚拟机可以分为系统虚拟机和程序虚拟机。
    • 系统虚拟机:如Visual Box、VMware等,它们完全是对计算机的仿真,提供一个可运行完整操作系统的软件平台。
    • 程序虚拟机:典型代表就是Java虚拟机,它专门为执行单个计算机程序而设计,在Java虚拟机中执行的指令我们称之为Java字节码指令。
  • 系统虚拟机和程序虚拟机对其上运行的软件都限制于虚拟机提供的资源。

- java虚拟机的种类

  1. Classic虚拟机:Sun公司初期使用的虚拟机,JDK1.4后被淘汰,全面使用Hotspot虚拟机
  2. Hotspot虚拟机:Sun公司收购公司Longview Technologies,获得Hotspot虚拟机。其是目前使用最广泛的虚拟机,占有绝对的市场地位。之后Sun被Oracle收购,有与JRockit整合的趋势。
  3. Jrockit虚拟机:Oracle收购BEA获得JRockit虚拟机
  4. J9虚拟机:是在IBM内部使用的虚拟机,广泛用于IBM的各大产品
  5. Apache Harmony虚拟机:Apache推出的开源软件,受OpenJDK的压制,2011年退役,其对Android有着积极的影响
  6. KVM和CDC/CLDC Hotspot虚拟机:主要用在嵌入式领域,IOS和Android前也用于手机平台

- java虚拟机的原理

代码运行过程如下:
java文件 --> 编译 --> class字节码 --> jvm可执行文件

图:简单原理
在这里插入图片描述

图:JAVA + OS
在这里插入图片描述

所以,最终,java程序是通过JVM的接口转换,调用系统底层的资源,使程序可以再系统上正常运行。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章