Java虚拟机札记-概述

今天开始学习Java虚拟机。本文介绍Java虚拟机的基础知识。

JDK与JRE
在学习Java虚拟机之前,我们先来复习下JRE和JDK的定义。JRE,Java Runtime Environment,意为Java运行时环境,包含Java虚拟机和Java API类库。JDK,ava Development Kit ,意为Java开发工具包,包含JRE和Java工具(如编译Java程序的Javac、调试和分析的工具jconsole,jvisualvm)。如果只需要运行Java程序,只需要安装JRE就可以了,如果需要编写Java程序,则需要安装JDK。

Java发展史

1991年,Java语言的前身,Oak诞生。

1995年,Oak改名为Java。

  • 第一次提出“Write Once,Run Anywhere”的口号

1996年,JDK1.0发布。

  • 提供了Sun Classic VM虚拟机。
  • 提供了Applet
  • 提供了AWT

1997年,JDK1.1发布。

  • JAR文件格式
  • JDBC
  • JavaBeans
  • RMI
  • 内部类
  • 反射

1998年,JDK1.2发布。

  • 将Java技术体系分为三个方向:J2SE、J2EE、J2ME。
  • EJB
  • Java Plug-in
  • Java IDL
  • Swing
  • JIT
  • strictfp
  • 集合类

1999年,HotSpot虚拟机发布。

2000年,JDK1.3发布。

  • 数学运算和Timer类库

2002年,JDK1.4发布。Java走向成熟。

  • 正则表达式
  • 异常链
  • NIO
  • 日志类
  • XML解析器

2004年,JDK1.5发布。语法层面改进很大

  • 语法
    • 自动装箱
    • 泛型
    • 注解
    • 枚举
    • 可变长参数
    • 遍历循环
  • 虚拟机和API
    • Java内存模型
    • JUC

2006年,JDK1.6发布。

  • 支持脚本语言
  • 对Java虚拟机做了大量改进

2009-2011年,JDK1.7发布了9个版本。

  • switch语句块中允许以字符串作为分支条件
  • 泛型实例化类型自动推断
  • 一个catch语句块处理多个异常
  • Fork/Join框架
  • 提供新的G1收集器
  • 增强对非Java语言的支持调用
  • 升级类加载架构

2014年,JDK1.8发布。

  • Lambda表达式
  • 函数式接口
  • 接口的增强

Java虚拟机有哪些

Sun Classic VM,第一款商用Java虚拟机,1996年发布。
Sun HotSpot VM,Sun JDK和OpenJDK中所带的虚拟机,也是目前使用范围最广的虚拟机。
KVM,CDC/CLDC Hotspot Implenmentation,Squawk VM,JavaInJava,Maxine VM,都是移动端虚拟机。
BEA JRockit/IBM J9 VM,其他公司的虚拟机。
Azul VM/BEA Liquid VM,特定硬件平台高性能虚拟机。
Apache Harmony/Google Android Dalvik VM。
Microsoft JVM,Windows下性能最好的虚拟机。

本文已收录于Java并发编程札记专栏。
本文内容摘录或总结自《深入理解 Java 虚拟机》。

你可能感兴趣的:(JVM,Java虚拟机札记)