发展历史

  • 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. 007-aven-assembly-plugin和maven-jar-plugin打包,java启动命令

    一.需求 打一个zip包,包含如下: bin为程序脚本,启动和停止 lib为依赖包 根目录下为配置文件和项目jar包 二.知识储备 2.1.插件了解 plugin function maven-jar ...

  2. Node.js REST 工具 Restify

    Restify 是一个 Node.JS 模块,可以让你创建正确的 REST web services.它借鉴了很多 express 的设计,因为它是 node.js web 应用事实上的标准 API. ...

  3. wireshark抓TCP包

    tcpdump下载 如果要抓TCP数据包,我们可以使用TCPdump工具,类似于windows/linux下使用的这个工具一样.具体方法是 下载tcpdump, 还有个下载地址 详细使用请参考里面的文 ...

  4. Git的安装和设置

    1.客户端下载 首先可以在https://git-scm.com/downloads下载客户端,进行安装. 2.安装 安装比较简单,可以直接默认一步一步往下安装即可: 3.配置github的ssh秘钥 ...

  5. day5-正则表达式 re

    re模块用于对python的正则表达式的操作. 字符: . 匹配除换行符以外的任意字符 \w 匹配字母或数字或下划线或汉字 \s 匹配任意的空白符 \d 匹配数字 \b 匹配单词的开始或结束 ^ 匹配 ...

  6. 软工网络15团队作业1——团队组队&展示

    一.团队展示 1.队名:想不出队名 2.队员学号(标记组长) 201521123064 郭炜埕 201521123066 郑晓丽 201521123067 廖怡洁 201521123068 包梦榕 2 ...

  7. 145. Binary Tree Postorder Traversal(二叉树后序遍历)

    Given a binary tree, return the postorder traversal of its nodes' values. For example:Given binary t ...

  8. 2018秦皇岛ccpc-camp Steins;Gate (原根+FFT)

    因为给定的模数P保证是素数,所以P一定有原根. 根据原根的性质,若\(g\)是\(P\)的原根,则\(g^k\)能够生成\([1,P-1]\)中所有的数,这样的k一共有P-2个. 则\(a_i*a_j ...

  9. shell脚本批量启动zookeeper

    脚本名称为zk_run.sh 将下面代码粘贴进zk_run.sh 添加执行权限 chmode +x zk_run.sh 运行脚本 ./zk_run.sh start 如果发现zookeeper没有启动 ...

  10. Spring MVC 知识总结

    参考文章:http://www.oschina.net/question/84460_9608 孔浩视频 1. 几个关键类: RequestMappingHandlerMapping 和 Reques ...