博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【深入理解JVM虚拟机】第1章 走进java
阅读量:2379 次
发布时间:2019-05-10

本文共 1686 字,大约阅读时间需要 5 分钟。

文章目录

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发展史

image.png | left | 827x359

  • 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

转载地址:http://rpmxb.baihongyu.com/

你可能感兴趣的文章
补丁的制作和使用:diff和patch
查看>>
pkg-config指南
查看>>
不用任何变量,实现strlen函数
查看>>
关于C语言的位移操作
查看>>
由“输出从1到1000的数”想到的
查看>>
键盘上各个按键的英文名
查看>>
Linux系统文本模式下的截屏技巧
查看>>
php中$_Get $_POST $_REQUEST区别
查看>>
PHP - 解决中文乱码问题
查看>>
php empty() isset() is_null()
查看>>
PHP学习-面向对象
查看>>
js页面跳转整理
查看>>
在64位Win7操作系统中安装Microsoft Access Engine的解决方案
查看>>
30类CSS选择器
查看>>
微信支付的使用介绍
查看>>
PHP单例模式应用详解
查看>>
冒号课堂§5.2:数据类型
查看>>
博客搬家
查看>>
冒号课堂§6.2:平台语言
查看>>
《关于信息系统组织方式的一个提案》的评论与反评
查看>>