• 初识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

     

  • 相关阅读:
    Laravel 出现 No application encryption key has been specified.
    windows下用composer局部安装laravel
    vue组件--通讯录
    vue组件--TagsInput
    axios封装(二)队列管理
    axios封装(一)基础配置
    [git hooks] pre-commit 配置
    qs.js
    flexbox的应用
    盒子模型详解
  • 原文地址:https://www.cnblogs.com/qq99514925/p/10887705.html
Copyright © 2020-2023  润新知