【深入理解JVM虚拟机】第1章 走进java

文章目录

    • 1.1Java技术体系
      • 1.1.1 Java API
      • 1.1.2 JDK
      • 1.1.3 JRE
    • 1.2 Java发展史
    • 1.3 Java虚拟机发展史
      • 1.3.1 Sun Classic VM
      • 1.3.2 Exact VM
      • 1.3.3 Sun HotSpot VM
      • 1.3.4 BEA JRockit
      • 1.3.5 IBM J9 VM
    • 1.4 Java技术的趋势
    • 1.5 编译自己的JDK

1.1Java技术体系

Sun 官方定义的Java技术体系包括以下几个组成部分:

  • Java 程序设计语言
  • 各种硬件平台上的 Java 虚拟机
  • Class 文件格式
  • Java API 类库
  • 第三方 Java 类库

1.1.1 Java API

按照技术所服务的领域划分,Java API 可以分为4个领域。

  • Java Card:支持一些 Java 小程序运行在小内存设备上的平台。
  • Java ME(Micro Edition):支持Java程序运行在移动终端的平台。
  • Java SE(Standard Edition):支持面向桌面级应用的Java平台。
  • Java EE(Enterprise Edition):支持使用多层架构的企业应用的Java平台。

1.1.2 JDK

一般情况下,我们把Java程序设计语言Java虚拟机Java API类库统称为JDK(Java Development Kit),JDK是用于支持Java程序开发的最小环境。

1.1.3 JRE

一般情况下,我们把Java SEJava虚拟机统称为 JRE,JRE 是支持 Java 程序运行额标准环境。

1.2 Java发展史

  • 1991 年,James Gosling 博士发布产品 Oak,这是 Java 语言的前身。
  • 1995 年,Oak 语言改名为 Java。
  • 1996 年,JDK1.0 发布,提供了纯解释执行的 Java 虚拟机实现:Sun Classic VM。
  • 1997 年,JDK1.1 发布,代表技术有:JDBC、JavaBeans、内部类、反射。
  • 1998 年,JDK1.2 发布,Java 技术体系被拆分为 J2SE、J2EE、J2ME 三大体系。
  • 2000 年,JDK1.3 发布,默认的 Java 虚拟机由 Sun Classic VM 改为 HotSopt。
  • 2002 年,JDK1.4 发布,Java 真正走向成熟,代表技术有:正则表达式、NIO等。
  • 2004 年,JDK1.5 发布,对语法易用性做了很大改进,新增了泛型、枚举等,代表技术有:并发包等。
  • 2006 年,JDK1.6 发布,将 J2EE/J2SE/J2ME 的命名方式改为 Java SE 6 / Java EE 6 / Java ME 6。
  • 2009 年,Sun 公司因为经营不善被 Oracle 公司收购。
  • 2011 年,JDK1.7 发布。
  • 2013 年,JDK1.8 发布。

1.3 Java虚拟机发展史

1.3.1 Sun Classic VM

作为“世界上第一款商用 Java 虚拟机”,从 JDK1.0 到 JDK1.2 都讲 Sun Classic VM 作为其默认的 Java 虚拟机。

1.3.2 Exact VM

Exact VM 是在 JDK1.2 时发布的一款运行在 Solaris 平台的虚拟机,但是到了 JDK1.3 其就不存在了。因为在 JDK1.3 之后,Sun 公司将 HotSpot 虚拟机作为 Java 语言默认的虚拟机。

1.3.3 Sun HotSpot VM

其实一开始是由一家名为“Longview Technologies”的小公司开发,1999年的时候被 Sun 公司收购。在JDK1.3 中其作为附加额虚拟机中提供,在 JDK1.3 之后其作为默认的 Java 虚拟机,并且一直将其作为默认虚拟机沿用至今。

1.3.4 BEA JRockit

BEA JRockit 是由 BEA 公司开发的,专门为服务器硬件和服务器端应用场景高度优化的虚拟机。

1.3.5 IBM J9 VM

多用途虚拟机,其定位与 Sun HotSpot VM,IBM 的目标是将其应用于 IBM 产品上。

1.4 Java技术的趋势

  • 模块化。在应用系统不断复杂、越来越庞大的时候,模块化是一个重要的应用方向。
  • 混合语言。有越来越多基于Java虚拟机的语言诞生,他们可能在应用中的不同层次发挥作用。
  • 多核并行
  • 丰富语法
  • 64位虚拟机

1.5 编译自己的JDK

你可能感兴趣的:(JVM虚拟机)