JAVA虚拟机家族简介

Classic VM

  JDK1.0发布,第一款商议的JAVA虚拟机。纯解释器方式来执行java代码的的JAVA虚拟机。如果要使用即时编译就需要外挂编译器。如果外挂了编译器,及时编译器会完全接管虚拟机的执行系统,解释器就不能工作。也就是说解释器和编译器不能配合工作。这也就意味着,如果要使用编译执行,编译器就对所有代码进行编译。

  关于解释器和即时编译:https://www.cnblogs.com/jthr/p/15556841.html

  在JDK1.2之前,它是唯一的虚拟机。JDK1.2时,它和HOT SPOT VM 并存,默认使用Classic VM,JDK1.3时默认使用HOT SPOT VM。JDK1.4,Classic VM退出商用虚拟机的历史舞台。

Exact VM

  它是为了解决Classic VM的一些问题而开发出来的虚拟机。它有了热点探测、两级即时编译器、编译器和解释器混合工作等模式。它使用准确试内存管理,虚拟机可以知道内存中某个位置存了什么数据是什么类型。有能力分辨它是一个引用地址还是实际的数据,这是垃圾收集时正确判断堆上的数据是否还可能被使用的前提。

  很可惜的是它只存在了很短的时间,就被HotSpotVM替代。只发行了Solaries版本,windows版本和linux版本都没有。

HotSpot VM

  它是OpenJDK和OrcaleJDK的默认的JAVA虚拟机,是目前使用最广的JAVA虚拟机。

  它是由Longview Technologies设计开发的,在1997年被sun公司收购。

  HotSpot继承了Classic VM和Exact VM的优点,也有自己的优势。

  它的名称中HotSpot指的是它的热点代码探测技术。它可以通过执行计数器找到最具有编译价值的代码,通过即时编译器以方法为单位编译。如果一个方法被频繁调用或者有效循环次数很多,会分别触发标准即时编译和栈上替换编译。通过编译器和解释器的协同工作,可以在最优化的程序响应时间和最佳执行性能中取得平衡。

KVM

  除了服务器、桌面领域,JAVA也有移动端的虚拟机。简单、轻量、高度可移植,在移动平台运行

JRokeit

  由BEA公司设计开发的,后面BEA被oracle收购。

  它专注于服务器端应用,所以不关注程序的启动速度。它内部不包含解释器的实现,全部代码都靠即时编译器编译执行。它的垃圾回收器和Jvava Mission Controller故障处理套件的实现,在当时也处于领先水平。但是它被Oracle收购后,永远的停留在R28版本,这是JDK6版Jrocket的代号。

IBM J9

  由IBM设计开发。它在设计上是全面考虑桌面、嵌入式、服务器的多用途虚拟机。J9的职责分离和模块化做的比HotSpot更好。它到今天的应用还是比较活跃的。

JAVA虚拟机-01-JAVA虚拟机家族简介的更多相关文章

  1. 086 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 03 面向对象基础总结 01 面向对象基础(类和对象)总结

    086 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 03 面向对象基础总结 01 面向对象基础(类和对象)总结 本文知识点:面向对象基础(类和对象)总结 说明 ...

  2. 085 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 02 构造方法介绍 04 构造方法调用

    085 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 02 构造方法介绍 04 构造方法调用 本文知识点:构造方法调用 说明:因为时间紧张,本人写博客过程中只是 ...

  3. 084 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 02 构造方法介绍 03 构造方法-this关键字

    084 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 02 构造方法介绍 03 构造方法-this关键字 本文知识点:构造方法-this关键字 说明:因为时间紧 ...

  4. 083 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 02 构造方法介绍 02 构造方法-带参构造方法

    083 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 02 构造方法介绍 02 构造方法-带参构造方法 本文知识点:构造方法-带参构造方法 说明:因为时间紧张, ...

  5. 082 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 02 构造方法介绍 01 构造方法-无参构造方法

    082 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 02 构造方法介绍 01 构造方法-无参构造方法 本文知识点:构造方法-无参构造方法 说明:因为时间紧张, ...

  6. 081 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 01 初识面向对象 06 new关键字

    081 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 01 初识面向对象 06 new关键字 本文知识点:new关键字 说明:因为时间紧张,本人写博客过程中只是 ...

  7. 080 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 01 初识面向对象 05 单一职责原则

    080 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 01 初识面向对象 05 单一职责原则 本文知识点:单一职责原则 说明:因为时间紧张,本人写博客过程中只是 ...

  8. 079 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 01 初识面向对象 04 实例化对象

    079 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 01 初识面向对象 04 实例化对象 本文知识点:实例化对象 说明:因为时间紧张,本人写博客过程中只是对知 ...

  9. 078 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 01 初识面向对象 03 创建类

    078 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 01 初识面向对象 03 创建类 本文知识点:创建类 说明:因为时间紧张,本人写博客过程中只是对知识点的关 ...

  10. 077 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 01 初识面向对象 02 类和对象

    077 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 01 初识面向对象 02 类和对象 本文知识点:类和对象 说明:因为时间紧张,本人写博客过程中只是对知识点 ...

随机推荐

  1. day15 Socket网络编程 & 反射

    day15 知识点浅记一下 ping 使用来icmp来检查网络是否连通,并没有记录路径.  tracert 使用icmp包记录并确定数据包访问目标所经过的路由,因此可以依据此命令判断故障发生的位置 n ...

  2. C++编程笔记(通信)(win32平台)

    目录 一.初始化网络库 二.socket套接字 2.1服务端 2.2客户端 三.发送.接收数据 3.1发送 3.2接收数据 四.自定义的结构体 4.1 发送端 4.2接收端 IPV6版本套接字的创建 ...

  3. web项目的开发--第一天

    如何分析需求.如何设计.编码实现.测试. 用ssm架构实现CRM项目代码编写. CRM项目: 关键是养成好的编程思想和编程习惯. 技术架构 视图层(view): 展示数据,跟用户交互. html,cs ...

  4. 【每日一题】【map存值】2022年2月25日-NC112 进制转换

    描述给定一个十进制数 M ,以及需要转换的进制数 N .将十进制数 M 转化为 N 进制数. 当 N 大于 10 以后, 应在结果中使用大写字母表示大于 10 的一位,如 'A' 表示此位为 10 , ...

  5. Django框架路由层-无名有名分组-无名有名分组反向解析

    目录 一:路由层 1.路由匹配(错误演示) 2.路由匹配错误原因 3.路由匹配(解决方式1) 4.settings配置文件控制自动添加斜杠匹配 5.url方法第一个参数是正则表达式(正规使用url) ...

  6. Chaos 测试下的若干 NebulaGraph Raft 问题分析

    Raft 是一种广泛使用的分布式共识算法.NebulaGraph 底层采用 Raft 算法实现 metad 和 storaged 的分布式功能.Raft 算法使 NebulaGraph 中的 meta ...

  7. Spring IoC的一些知识点

    在日常开发中,接触得比较多的算是Spring生态了,Spring Ioc是Spring Framework重要的组成部分,下面整理了一些Spring Ioc的知识点. 1. 什么是IoC IoC(In ...

  8. [OpenCV实战]49 对极几何与立体视觉初探

    本文主要介绍对极几何(Epipolar Geometry)与立体视觉(Stereo Vision)的相关知识.对极几何简单点来说,其目的就是描述是两幅视图之间的内部对应关系,用来对立体视觉进行建模,实 ...

  9. BZOJ4919 大根堆(树形dp+线段树合并)

    用 multiset 启发式合并贪心维护 LIS 的做法就不多说了,网上题解一大堆,着重讲一下线段树合并维护 \(dp\). \(O(n^2)\) 的 \(dp\) 非常显然.离散化后,设 \(dp[ ...

  10. ESXI 7.0封装网卡驱动

    前段时间配置的All In One 主机,由于华擎H410M-ITX/AC主板的板载网卡为intel I219-V,在安装ESXI后网卡无法驱动.查询之后发现原来ESXI7.0.2的版本不含该网卡驱动 ...