发展历史

  • 1996年,SUN JDK 1.0 Classic VM 发布,纯解释运行,使用外挂进行JIT
  • 1997年 JDK1.1 发布。包含了:AWT、内部类、JDBC、RMI、反射
  • 1998年 JDK1.2 Solaris Exact VM:JIT 解释器混合,Accurate Memory Management 精确内存管理,数据类型敏感,提升的GC性能。JDK1.2开始 称为Java 2,J2SE J2EE J2ME 的出现,加入Swing Collections
  • 2000年 JDK 1.3 Hotspot 作为默认虚拟机发布,加入JavaSound
  • 2002年 JDK 1.4 Classic VM退出历史舞台,加入了:Assert 正则表达式 NIO IPV6 日志API 加密类库
  • 2004年发布 JDK1.5 即 JDK5 、J2SE 5 、Java 5。加入了:泛型、注解、装箱、枚举、可变长的参数、Foreach循环
  • JDK1.6 JDK6。加入了:脚本语言支持、JDBC 4.0、Java编译器 API
  • 2011年 JDK7发布,延误项目推出到JDK8。加入了:G1、动态语言增强、64位系统中的压缩指针、NIO 2.0
  • 2014年 JDK8发布,Lambda表达式、语法增强 、Java类型注解
  • 2017年JDK9,加入了:模块化

大事件

  • 使用最为广泛的JVM为HotSpot
  • HotSpot 为Longview Technologies开发,被SUN收购
  • 2006年,Java开源,并建立OpenJDK
  • HotSpot,成为Sun JDK和OpenJDK中所带的虚拟机
  • 2008 年,Oracle收购BEA,得到JRockit VM
  • 2010年Oracle 收购 Sun,得到Hotspot
  • Oracle宣布在JDK8时整合JRockit和Hotspot,优势互补。在Hotspot基础上,移植JRockit优秀特性

规范

  • Java语言规范:语法、变量、类型、文法
  • JVM规范:Class文件类型、运行时数据、帧栈、虚拟机的启动、虚拟机的指令集

初识 JVM的更多相关文章

  1. 初识JVM

    做了这么久的开发,到目前为止对JVM也只是一些简单的概念上的理解,正好周末于是将JVM的学习提上日程. JVM 概念 JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是 ...

  2. 初识JVM虚拟机

    前言: Java语言里负责解释执行字节码文件的是Java虚拟机,即JVM——Java Virtual Machine(Java虚拟机). 执行Java程序的两个步骤: 由Java语言编写的程序需要进过 ...

  3. JVM学习笔记之初识JVM(三)

    一.JVM在计算机中的位置 JVM调用操作系统,操作系统调用硬件,硬件反馈信息至操作系统,操作系统反馈信息至JVM 二.JVM的体系结构 JVM在执行过程中对内存的管理分为5个区域: 1.PC寄存器 ...

  4. JVM内核-原理、诊断与优化学习笔记(一):初识JVM

    文章目录 JVM的概念 JVM是Java Virtual Machine的简称.意为Java虚拟机 虚拟机 有哪些虚拟机 VMWare或者Visual Box都是使用软件模拟物理CPU的指令集 JVM ...

  5. 初识JVM:(二)Java的垃圾回收机制详解

    声明:本文主要参考https://www.cnblogs.com/codeobj/p/12021041.html 仅供个人学习.研究之用,请勿用于商业用途,如涉及侵权,请及时反馈,立刻删除. 一.Ja ...

  6. 初识JVM:(一)JVM工作原理和流程

    本文主要参考:http://blog.csdn.net/CSDN_980979768/article/details/47281037?locationNum=7&fps=1 声明:主要用于个 ...

  7. JVM性能优化 (一) 初识JVM

    一.我们为什么要对JVM做优化 在本地开发环境中我们很少会遇到需要对JVM进行优化的需求,但是到了生产环境,我们可能会有下面的需求: 运行的应用"卡住了",日志不输出,程序没有反应 ...

  8. 「入门篇」初识JVM

    记录于 2022-01-02  17:25:12  GhostFace 1. 什么是JVM? 概念 来自百度百科 JVM是 Java Virtual Machine(Java虚拟机)的缩写,JVM是一 ...

  9. 「入门篇」初识JVM (下下) - GC

    垃圾收集主要是针对堆和方法区进行:程序计数器.虚拟机栈和本地方法栈这三个区域属于线程私有的,只存在于> 线程的生命周期内,线程结束之后也会消失,因此不需要对这三个区域进行垃圾回收. GC - J ...

随机推荐

  1. mxGraph画图区域使用鼠标滚轮实现放大/缩小

    // 重写鼠标滚轮事件 mxEvent.addMouseWheelListener = function (funct) { } // 添加初次载入事件 window.onload = functio ...

  2. CentOS6.5之Zabbix3.2.2 Server安装、汉化及Agent安装

    1.安装MySQL 1.1.安装MySQL rpm -ivh http://dev.mysql.com/get/mysql-community-release-el6-5.noarch.rpm yum ...

  3. TypeScript教程

    汇智课堂 地址  http://www.hubwiz.com/course/55b724ab3ad79a1b05dcc26c/ TypeScript是一种由微软开发的自由和开源的编程语言.它是Java ...

  4. 揭秘DOM中data和nodeValue属性同步改变那些事

    问题引发:最近在整理DOM系列的一些知识点,发现在DOM的某些接口API中,存在一些我想不通的现象.就随便举个例子吧:DOM文档模型中的文本节点,可以通过nodeValue或data属性访问文本节点的 ...

  5. python 随机分类

    #encoding:utf-8import pandas as pdimport numpy as npfrom sklearn import datasets,linear_modelfrom sk ...

  6. 20165324《Java程序设计》第五周

    学号 2016-2017-2 <Java程序设计>第五周学习总结 教材学习内容总结 第七章:内部类与异常类 内部类:java支持在类中定义另一个类,这个类为内部类,包含内部类的类称为外嵌类 ...

  7. SuperObject使用

    SuperObject SuperObject第三方控件包,试用了下并编写了个DEMO,发现还是蛮强大.废话 少说,看看下面的代码就知道其强大: 1.JSON原始数据 {   "name&q ...

  8. JS:parseInt("08")或parseInt("09")转换返回0的原因

    一.parseInt用法 parseInt(s); parseInt(s,radix) 二.第一个方式不再多说,第二个方式,radix是s所基于的进制.范围为2-36(不在此范围函数将返回NaN). ...

  9. Linux系统——最小化安装

    一.虚拟机进行Linux minimal 安装 网络连接:选择“自定义”——>VMnet8(NAT模式) #PC与NAT网络的虚拟机在不同网段,此时虚拟网卡作为网关建立通信 NAT模式可直接上I ...

  10. 斐讯面试记录—三线程交替打印ABC

    package cn.shenzhen.feixun; public class PrintABC extends Thread{ private String name; private Objec ...