一、JVM介绍

本文介绍了Java虚拟机JVM的发展历程,从1996年的ClassicVM到JDK1.9,详细阐述了各版本的重要特性,如HotSpot VM的引入、泛型、注解、Lambda表达式等。同时,概述了JVM规范,包括其对不同语言的支持、内存结构、指令集以及数据类型的表示方法。此外,还提及了JVM在多线程、反射和类加载等方面的基础支持。
摘要由CSDN通过智能技术生成

目录

一、概念

二、发展历史

三、JVM规范


一、概念

  • JVM是java virtual machine的简称,是java虚拟机,使用软件模拟java字节码的指令集;
  • 虚拟机:通过软件模拟具有完整硬件系统功能的、运行在隔离环境中的完整的计算机系统;

二、发展历史

  • 1996年 SUN发布JDK1.0 Classic VM;
  • 1997年发布JDK1.1 -AWT、内部类、JDBC、RMI、反射;
  • 1998年发布JDK1.2  
    • 开始称为java2;
    • 精确数据类型管理,数据类型敏感;
    • 提升GC性能;
  • 2000年JDK1.3 Hotspot作为默认虚拟机发布;Hotspot是Longview Technologies开发 被SUN收购
  • 2002年JDK1.4 Classic VM退出;
  • 2004年JDK1.5 即JDK5
    • 泛型、注解、装箱、枚举、可变长参数、Foreach循环;
  • 2006年JDK1.6
    • java开源、并建立OpenJDk
    • HotSpot  成为Sun JDK和OpenJDK中所带的虚拟机
    • 脚本语言支持;
    • JDBC4.0;
    • Java编译器API提供;
  • 2008年Oracle收购BEA得到JRockti VM
  • 2010年Oracle收购SUN
  • 2011年JDK1.7
  • 2014年JDK1.8
    • Lambda表达式
    • 语法增强 Java类型注解
    • Stream API、Date Time API 、Optional 类、
  • 2017年JDK1.9

三、JVM规范

  • 满足JVM规范的语言(Scala、Groovy、Clojure)即可在JVM上运行;
  • 定义PC(指令存放)、堆、栈、方法区;
  • 原码、反码、补码
    • 原码:最高位为符号位,0表示整数、1表示负数;
    • 反码:整数反码是原码,负数反码符号位不变其余取反;
    • 补码:整数补码与原码一致,负数补码是反码+1;
    • 一补码表示整数好处:能正确表示0(正负)、能正确表示加法运算(正负)。
  • 特殊方法:<clinit>(类的初始化)、<init>(实例的初始化);
  • 提供一系列指令集,如:
    • l2i:long类型转int;
    • aload、astore:出入栈;
    • iadd、isub:加减;
    • ifeq、ifne:相等、不相等;
  • 提供基础支持,如:
    • 反射;
    • classloader:类装载(main);
    • 多线程;
    • 初始化
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值
>