一、前言

通过上一节,我们对整个java的技术体系有了一定的了解。

这一节我们来看下Java的发展史。

二、Java发展史

1.时间线

序号 发布日期 JDK 版本 新特性 详细说明
0 1991.04 Oak 1991.04,由 James Gosling 博 士 领 导 的 绿 色 计 划( Green Project)开 始 启 动,Oak (Java的前身)当 时 在 消 费 品 市 场 上 并 不 算 成 功, 但 随 着 1995 年 互 联 网 潮 流 的 兴 起, Oak 迅 速 找 到 了 最 适 合 自 己 发 展 的 市 场 定 位 并 蜕 变 成 为 Java 语 言。
1 1995.05 Java 1.0 “Write Once, Run Anywhere” 1995 年 5 月 23 日, Oak 语 言 改 名 为 Java, 并 且 在 SunWorld 大 会 上 正 式 发 布 Java 1.0 版 本。 Java 语 言 第 一 次 提 出 了" Write Once, Run Anywhere" 的 口 号。
2 1996.01 JDK 1.0 Java 虚 拟 机、 Applet、 AWT 1996 年 1 月 23 日, JDK 1.0 发 布, Java 语 言 有 了 第 一 个 正 式 版 本 的 运 行 环 境。 JDK 1.0 提 供 了 一 个 纯 解 释 执 行 的 Java 虚 拟 机 实 现( Sun Classic VM)。
在 1996 年 5 月 底, Sun 公 司 于 美 国 旧 金 山 举 行 了 首 届 JavaOne 大 会
3 1997.02 JDK 1.1 内部类、反射、JAR 文 件 格 式、JDBC、JavaBeans、RMI
4 1998.12 JDK 1.2 三个方向:J2SE、J2EE、J2ME (1)Sun 在 这 个 版 本 中 把 Java 技 术 体 系 拆 分 为 3 个 方 向, 分 别 是 面 向 桌 面 应 用 开 发 的 J2SE( Java 2 Platform, Standard Edition)、 面 向 企 业 级 开 发 的 J2EE( Java 2 Platform, Enterprise Edition) 和 面 向 手 机 等 移 动 终 端 开 发 的 J2ME( Java 2 Platform, Micro Edition)。
(2) 在 这 个 版 本 中 出 现 的 代 表 性 技 术 非 常 多, 如 EJB、 Java Plug-in、 Java IDL、 Swing 等,
(3)并 且 这 个 版 本 中 Java 虚 拟 机 第 一 次 内 置 了 JIT( Just In Time) 编 译 器( JDK 1.2 中 曾 并 存 过 3 个 虚 拟 机, Classic VM、 HotSpot VM 和 Exact VM, 其 中 Exact VM 只 在 Solaris 平 台 出 现 过; 后 面 两 个 虚 拟 机 都 是 内 置 JIT 编 译 器 的, 而 之 前 版 本 所 带 的 Classic VM 只 能 以 外 挂 的 形 式 使 用 JIT 编 译 器)。
5 2000.05 JDK 1.3 Timer、Java 2d
6 2002.02 JDK 1.4 正 则 表 达 式、 异 常 链、 NIO、 日 志 类、 XML 解 析 器 和 XSLT 转 换 器 JDK 1.4 是 Java 真 正 走 向 成 熟的 一 个 版 本, Compaq、 Fujitsu、 SAS、 Symbian、 IBM 等 著 名 公 司 都 有 参 与 甚 至 实 现 自 己 独 立 的 JDK 1.4。 哪 怕 是 在 十 多 年 后 的 今 天, 仍 然 有 许 多 主 流 应 用( Spring、 Hibernate、 Struts 等) 能 直 接 运 行 在 JDK 1.4 之 上, 或 者 继 续 发 布 能 运 行 在 JDK 1.4 上 的 版 本。 JDK 1.4 同 样 发 布 了 很 多 新 的 技 术 特 性, 如正 则 表 达 式、 异 常 链、 NIO、 日 志 类、 XML 解 析 器 和 XSLT 转 换 器 等。
7 2004.09.30 JDK 1.5 自 动 装 箱、 泛 型、 动 态 注 解、 枚 举、 可 变 长 参 数、 遍 历 循 环( foreach 循 环)、改进内存模型、提供并发包 2004 年 9 月 30 日, JDK 1.5[ 1] 发 布, 工 程 代 号 Tiger( 老 虎)。 从 JDK 1.2 以 来, Java 在 语 法 层 面 上 的 变 换 一 直 很 小, 而 JDK 1.5 在 Java 语 法 易 用 性上 做 出 了 非 常 大 的 改 进。 例 如, 自 动 装 箱、 泛 型、 动 态 注 解、 枚 举、 可 变 长 参 数、 遍 历 循 环( foreach 循 环) 等 语 法 特 性 都 是 在 JDK 1.5 中 加 入 的。 在 虚 拟 机 和 API 层 面 上, 这 个 版 本 改 进 了 Java 的 内 存 模 型( Java Memory Model, JMM)、 提 供 了 java.util.concurrent 并 发 包等。
8 2006.12 JDK 6 命名、动态语言、编译、算法 在 这 个 版 本 中, Sun 终 结 了 从 JDK 1.2 开 始 已 经 有 8 年 历 史 的 J2EE、 J2SE、 J2ME 的 命 名 方 式, 启 用 Java SE 6、 Java EE 6、 Java ME 6 的 命 名 方 式。 JDK 1.6 的 改 进 包 括: 提 供 动 态 语 言 支 持( 通 过 内 置 Mozilla JavaScript Rhino 引 擎 实 现)、 提 供 编 译 API 和 微 型 HTTP 服 务 器 API 等。 同 时, 这 个 版 本 对 Java 虚 拟 机 内 部 做 了 大 量 改 进, 包 括 锁 与 同 步、 垃 圾 收 集、 类 加 载等 方 面 的 算 法 都 有 相 当 多 的 改 动。
9 2009.02 JDK 7 2009 年 4 月 20 日, Oracle 公 司 宣 布 正 式 以 74 亿 美 元 的 价 格 收 购 Sun 公 司
10 2014.03 JDK 8 Lambda 、Date API、重复注解、类型推断、Nashorn Script脚本引擎

JVM_总结_03_Java发展史的更多相关文章

  1. Python学习笔记—Python基础1 介绍、发展史、安装、基本语法

    第一周学习笔记: 一.Python介绍      1.Python的创始人为吉多·范罗苏姆.1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为ABC语言 ...

  2. 微分方程——基本概念和常微分方程的发展史

    1.2 基本概念和常微分方程的发展史 自变量.未知函数均为实值的微分方程称为实值微分方程:未知函数取复值或变量及未知函数均取复值时称为复值微分方程.若无特别声明,以下均指实变量的实值微分方程. 1.2 ...

  3. CSS3_概述、发展史、模块介绍、与浏览器之间的关系

    一.CSS3概述和CSS3的发展史: 1.css3概述: CSS3是CSS2的升级版本,3只是版本号,它在CSS2.1的基础上增加了很多强大的新功能.    目前主流浏览器chrome.safari. ...

  4. 一. JVM发展史,运行时数据区域,四大引用

    一.JVM的出现 JVM将字节码解释成不同os下的机器指令,有了jvm,java语言在不同平台上运行时不需要重新编译 虚拟机发展史 (1)Sun Classic classic jvm要么采用纯解释器 ...

  5. 腾讯qq的发展史

    腾讯qq的发展史 即时通信软件的历史并不久远,但是它一诞生,就立即受到网民的喜爱,并风靡全球.    在其发展史上,以色列人功不可没.正是四位以色列籍的年轻人,在1996年7月成立的Mirabilis ...

  6. 安卓发展史以及安卓和苹果对比PPT

    此PPT由我们小组协力完成,介绍了Android的发展史以及android与苹果的一些比较.概述了android发展至今的一系列版本,功能的日益完善,它的强大性,灵活性,公开性使其拥有吸引客服的绝大魅 ...

  7. Qt 框架的图形性能高(OpenGL上的系统效率高),网络性能低,开发效率高,Quick是可以走硬件加速——Qt中分为好几套图形系统,差不多代表了2D描画的发展史。最经典的软描画系统

    -----图形性能部分-----Qt的widgets部分,运行时的图像渲染性能是一般的,因为大部分的界面内容都是Qt自绘,没有走硬件加速,也就是说很多图形内容都是CPU算出来的.但是widgets底层 ...

  8. JavaScript发展史,与JScript差别,引入方式,数据类型,命名规范,命名推荐,解决命名冲突

    文件夹: 1.JavaScript发展史 2.JavaScript与JScript差别 3.JavaScript引入方式 4.JavaScript基本数据类型及布尔值 5.JavaScript命名规范 ...

  9. jQuery的发展史

    jQuery的发展史,你知道吗? 每天多学一点知识,就少写一行代码2006年1月,jQuery的第一个版本面世,至今已经有6年多了(注:这个时间点是截止至出书时间).虽然过了这么久,但它依然以其简洁. ...

随机推荐

  1. SAP内存、ABAP内存、共享内存的 区别

    区别: (1)SAP内存使用 SET/GET parameters 方法: SET  PARAMETER  ID  ‘MAT’ field P_MATNR. GET  PARAMETER  ID  ‘ ...

  2. 一个Browser的HTTP请求(一)

    本文主要是分析一个简单的web服务器是如何工作的. 若有不恰当或不对之处,请指正! Tomcat和web服务器的关系 我们常说Tomcat是一个web容器,也常说用户通过浏览器向web服务器进行请求, ...

  3. GIS学习和开发的在线资源

    1.OpenGIS Consortium标准,http://www.opengeospatial.org.著名的OGC标准是每个GIS开发者最后都不得不学习的,或深或浅. 2.SharpMap,Pro ...

  4. Linux下运行java项目

    最近初步接触了linux,感觉很有新鲜感.之前在windows下干过的事情也便想到在linux环境下实现一下.正好手头在编java,就想既然java可以在windows的DOS操作下运行,是不是也可以 ...

  5. VC6.0中添加库文件和头文件

    附加头文件包含 VC6.0中: VC6.0默认include包含路径:Tools>Options>Directories>Include files. 对于特定项目的头文件包含,在“ ...

  6. springboot——数据层访问搭建 集成Duid连接池

    springboot中默认是使用的tomcat的连接池,如果我们想要第三方的连接池,我们这么配置呢? 首先在application.yml文件中注释掉之前数据库的配置,重新用druid的方式配置: # ...

  7. SQL查询语句的执行顺序

  8. ==、equals与hashCode

    ==  首先,得说明java数据类型分为基本数据类型和引用数据类型, 基本数据类型有8种: 浮点型:float(4 byte), double(8 byte) 整型:byte(1 byte), sho ...

  9. redis 第一篇

    一.redis简介 redis是一个开源的高性能键值对数据库:本质上是数据结构服务器或者是数据结构数据库 特点: 1.共享内存 如果有自己的线程可以读list,如果外界还有一个程序都上面的list,那 ...

  10. 2.3UML建模之用例图关系

    一.UML简介 UML(统一建模语言,Unified Modeling Language)是一种定义良好.易于表达.功能强大且普遍适用的可视化建模语言.它融入了软件工程领域的新思想.新方法和新技术.它 ...