一、前言

通过上一节,我们对整个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. boost之定时器和io_service

    1.定时器的使用,sleep是等待线程,asio封装了操作系统的异步系统调用select,epoll. io_servie 实现了一个任务队列,这里的任务就是void(void)的函数.Io_serv ...

  2. Python基础-configparser和hashlib模块

    configparser模块 import configparser config = configparser.ConfigParser() #将配置写入到文件 config[', 'Compres ...

  3. English Phrases

    @1:Phrases requst sth from/of sb 向某人要求某物 a new lease on life   重获新生.焕发生机 state of the art 最先进的 at th ...

  4. sharepoint 2010自定义访问日志列表设置移动终端否和客户端访问系统等计算列的公式

    上个月本人开发和上线了一个在SharePoint 2010上基于HTML5的移动OA网站,后端服务采用自定义的基于AgilePoint工作流引擎的Sharepoint Web服务,前端主要采用Jque ...

  5. LeetCode:对角线遍历【498】

    LeetCode:对角线遍历[498] 题目描述 给定一个含有 M x N 个元素的矩阵(M 行,N 列),请以对角线遍历的顺序返回这个矩阵中的所有元素,对角线遍历如下图所示. 示例: 输入: [ [ ...

  6. 使用新浪IP库获取IP详细地址

    使用新浪IP库获取IP详细地址 <?php class Tool{ /** * 获取IP的归属地( 新浪IP库 ) * * @param $ip String IP地址:112.65.102.1 ...

  7. SVN 过滤文件

    SVN新手最容易犯的一个错误: 就是把所有文件一股脑地全提交上去了. 这样很不好,因为这当中包含很多编译器自动生成的文件,还有中间文件. 这些文件可能每次编译都会不同,所以编译一次就冲突一次. 很显然 ...

  8. Oracle网络服务管理与配置

    一.Oracle网络服务概述 1.网络解决方案. (1)可连接性:在Oracle中,由Oracle net组件负责在客户端应用程序与数据服务器之间创建会话.维护会话连接和数据传输. (2)可管理性: ...

  9. Linux Shell编程 awk命令

    概述 awk是一种编程语言,用于在linux/unix下对文本和数据进行处理.数据可以来自标准输入(stdin).一个或多个文件,或其它命令的输出.它支持用户自定义函数和动态正则表达式等先进功能,是l ...

  10. Linux Shell基础 Bash常见命令 echo命令

    概述 shell中常见的命令echo. 输出命令:echo echo命令的输出内容如果没有特殊含义,则将原内容输出到屏幕:如果输出内容有特殊含义,则输出打印其含义. 命令格式如下: [root@loc ...