初识JVM

JVM概念

  JVM是Java Virtual Machine的简称。意为Java虚拟机。

Java和JVM的历史

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性能

  2000年 JDK 1.3 Hotspot 作为默认虚拟机发布
  2002年 JDK 1.4 Classic VM退出历史舞台

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类型注解

2016年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优秀特性

JVM规范

  

  Java语言和JVM相对独立

  JVM主要定义二进制class文件和JVM指令集等

  • Class文件类型
  • 运行时数据
  • 帧栈
  • 虚拟机的启动
  • 虚拟机的指令集

   VM指令集

类型转化
  l2i
出栈入栈操作
  aload astore
运算
  iadd isub
流程控制
  ifeq ifne
函数调用
  invokevirtual invokeinterface invokespecial invokestatic

 

 

posted @ 2019-05-18 23:35  2020持之以恒  阅读(219)  评论(0编辑  收藏  举报