Green Project 此计划最初的目标 是开发一种能够在各种消费性电子产品(如机顶盒、冰箱、收音机等)上运行的程序架构。
作为 Green Project 的一部分,Sun Microsystems 开始着手开发 Oak 编程语言。
Java 吉祥物 Duke 由 Star7 演示动画的艺术总监 Joe Palrang 设计。Palrang 继续为梦工厂工作,制作史瑞克和安兹等动画电影。
为了展示 Oak 技术并创建一种能够将其软件交到尽可能多的人手中的工具,Green Project 团队开发了自己的 Web 浏览器 WebRunner,向电影《银翼杀手》致敬。该浏览器是使用 Oak 编程语言创建的,并运行 Oak 应用程序。
为了准备首次公开募股,Sun 尝试将 Oak 注册为产品名称,但该名称已被占用。在头脑风暴会议期间考虑的替代方案包括 Silk、Lyric、
Pepper、NetProse、Neon、Ruby、WebDancer 和WebSpinner。法律审查消除了大多数名称,但留下了一个:Java。
San Jose Mercury News 在头版刊登了一篇涵盖 Java 技术的文章。
WebRunner 浏览器,后来更名为 HotJava,在 TED 会议上首次展示。
Java 1.0 a2 在 SunWorld 大会上发布,Netscape 领导层在大会上宣布了浏览器对 Java 的支持。Netscape
获得 Java 许可并发布了第一个支持 Java 的 Netscape Navigator 浏览器版本。
Sun 引入了“Write Once,Run Anywhere”的口号来描述 Java 独特的跨平台能力。
Java 开发工具包 1.0 发布。
引入了 Java 操作系统 (JavaOS)。JavaOS 主要用 Java 编写,适用于网络计算机和嵌入式系统。
Sun 推出了其第一个以开发人员为中心的参与计划:Java Developer Connection。
Sun 在旧金山举行了首届 JavaOne 会议。
Duke 的惊人冒险漫画书发行。这本 16 页的漫画书将 Java 吉祥物称为“网络上最流畅的代码人”。
1997年2月19日Java Development Kit 1.1 发布时具有内部类、JavaBeans、RMI 编译器、反射、即时 (JIT)编译器、国际化和 Unicode 支持等关键特性。
直到1999年4月8日,JDK 1.1一共发布了1.1.0至1.1.8这9个版本。从1.1.4以后,每个JDK版本都有 一个属于自己的名字(工程代号),分别为:JDK 1.1.4-Sparkler(宝石)、JDK 1.1.5-Pumpkin(南瓜)、JDK 1.1.6-Abigail(阿比盖尔,女子名)、JDK 1.1.7-Brutus(布鲁图,古罗马政治家和将军) 和JDK 1.1.8-Chelsea(切尔西,城市名)。
Java Development Kit 1.2 发布并更名为 Java 2 Platform, Standard Edition(J2SE 1.2)。新功能包括 Swing、Java 2D 和 Collections Framework。
1998年12月4日,JDK迎来了一个里程碑式的重要版本:工程代号为Playground(竞技场)的JDK 1.2,Sun在这个版本中把Java技术体系拆分为三个方向,分别是面向桌面应用开发的J2SE(Java 2 Platform,Standard Edition)、面向企业级开发的J2EE(Java 2 Platform,Enterprise Edition)和面向手 机等移动终端开发的J2ME(Java 2 Platform,Micro Edition)。在这个版本中出现的代表性技术非常 多,如EJB、Java Plug-in、Java IDL、Swing等,并且这个版本中Java虚拟机第一次内置了JIT(Just In Time)即时编译器(JDK 1.2中曾并存过三个虚拟机,Classic VM、HotSpot VM和Exact VM,其中 Exact VM只在Solaris平台出现过;后面两款虚拟机都是内置了JIT即时编译器的,而之前版本所带的 Classic VM只能以外挂的形式使用即时编译器)。在语言和API层面上,Java添加了strictfp关键字, Java类库添加了现在Java编码之中极为常用的一系列Collections集合类等。在1999年3月和7月,分别有 JDK 1.2.1和JDK 1.2.2两个小升级版本发布。
1999年4月27日,HotSpot虚拟机诞生。HotSpot最初由一家名为“Longview Techno-logies”的小公司 开发,由于HotSpot的优异表现,这家公司在1997年被Sun公司收购。Hot-Spot虚拟机刚发布时是作为 JDK 1.2的附加程序提供的,后来它成为JDK 1.3及之后所有JDK版本的默认Java虚拟机。
Java Community Process (JCP) 的建立是为了形成一种机制,允许相关方帮助开发 Java 技术的技术规范。
2000年5月8日,工程代号为Kestrel(美洲红隼)的JDK 1.3发布新特性,包括 HotSpot Java VM、Java 命名和目录接口以及 Java 平台调试器体系结构。
自从JDK 1.3开始,Sun公司维持着稳定的研发节奏:大约每隔两年发布一个JDK的主版本,以动 物命名,期间发布的各个修正版本则以昆虫作为工程代号。
到 2000 年底,超过 1 亿张基于 Java Card(1996 年推出)的支持 Java 的智能卡出货。
第一个支持 Java 的蓝光光盘播放器原型亮相。
JDK 1.3有1个修正版本JDK 1.3.1,工程代号为Ladybird(瓢虫),于2001年5月17日发布。
Oracle 首席执行官拉里·埃里森 (Larry Ellison) 在 JavaOne 上与 Sun 领导层一起展示了支持 Java
的软件。
2002年2月13日,JDK 1.4 发布,工程代号为Merlin(灰背隼),包含 Java Web Start、非阻塞 I/O、Logging API、Preferences API
和正则表达式等关键特性。
JDK 1.4有两个后续修正版:2002年9月16日发 布的工程代号为Grasshopper(蚱蜢)的JDK 1.4.1与2003年6月26日发布的工程代号为Mantis(螳螂) 的JDK 1.4.2。
在 JavaOne,Sun 的 Java 开发团队推出了首届年度 Duke’s Choice Awards,该奖项旨在表彰以独特方式使用
Java 技术的创新者。
Java.com 网站的推出允许消费者将 Java 运行时包下载到台式机和笔记本电脑上,以使他们能够运行 Java 应用程序。
NASA 在 JavaOne 的舞台上展示了火星探测器原型,展示了 Java 技术将如何帮助从 NASA 的任务控制中心远程引导它。
大约 75% 的专业开发人员使用 Java 作为他们的主要开发语言。
2004年9月30日,JDK 5发布,工程代号为Tiger(老虎),具有泛型、注释、枚举和可变参数 (varargs)、遍历循环(foreach循环) 等关键特性。另外,JDK 5是官方声明可以支持Windows 9x操作系统的最后一个JDK版本。
关于是否将 Java 作为开源软件发布的辩论始于 JavaOne。
NASA 的 Spirit 漫游车于 2004 年 1 月 4 日降落在火星上,将 Java 应用程序带到了一个新的星球。
到 2004 年底,Java 运行在 15 亿台设备上。
Sun 估计 Java 每年带来超过 1000 亿美元的收入。有超过 450 万 Java 开发人员、25 亿台支持 Java 的设备和 10 亿张基于 Java 的智能卡。
Java Champions 计划在 JavaOne 启动,以表彰开发人员社区的领导者。
Sun 在 GNU 通用公共许可证下发布 Java 以进行开源开发,该许可证与管理 Linux 操作系统的使用和开发的许可证相同。
2006年12月11日,JDK 6发布,工程代号为Mustang(野马)。在这个版本中,Sun公司终结了从 JDK 1.2开始已经有八年历史的J2EE、J2SE、J2ME的产品线命名方式,启用Java EE 6、Java SE 6、Java ME 6的新命名来代替。JDK 6的改进包括:提供初步的动态语言支持(通过内置Mozilla JavaScript Rhino引擎实现)、提供编译期注解处理器和微型HTTP服务器API,等等。同时,这个版本对Java虚拟 机内部做了大量改进,包括锁与同步、垃圾收集、类加载等方面的实现都有相当多的改动。
在2006年11月13日的JavaOne大会上,Sun公司宣布计划要把Java开源,在随后的一年多时间内, 它陆续地将JDK的各个部分在GPLv2(GNU General Public License v2)协议下公开了源码,并建立了 OpenJDK组织对这些源码进行独立管理。除了极少量的产权代码(Encumbered Code,这部分代码所有 权不属于Sun公司,Sun本身也无权进行开源处理)外,OpenJDK几乎拥有了当时SunJDK 7的全部代 码,OpenJDK的质量主管曾经表示在JDK 7中,SunJDK和OpenJDK除了代码文件头的版权注释之外, 代码几乎是完全一样的,所以OpenJDK 7与SunJDK 7本质上就是同一套代码库出来的产品。
Java HotSpot VM 和编译器是根据 GNU 通用公共许可证发布的。
Duke吉祥物图像在 BSD 许可下开源。
Java 技术被超过 600 万开发人员使用,并在超过 55 亿台设备上运行。
首届 Java 虚拟机 (JVM) 语言峰会于 2008 年 9月在加利福尼亚州圣克拉拉举行。了解更多。
2009年4月20日,Oracle宣布正式以74亿美元的价格收购市值曾超过2000亿美元的Sun公司。Larry Ellison 与 Sun 领导层一起在 JavaOne 上谈论了 Oracle 对投资 Java 技术以造福客户和社区的承诺。
Oracle 推出了 Java Magazine,这是一本由开发人员为开发人员撰写的技术出版物。作为有关Java 的官方出版物,它提供了新 Java 应用程序的简介、技术指南文章、社区新闻等。
2009年2月19日,工程代号为Dolphin(海豚)的 JDK 7 发布了新功能,包括 Project Coin、invokedynamic、fork/join 框架和新的文件系统 API (NIO.2)。
97% 的企业桌面运行 Java。
2014年3月18日 JDK8 发布时包含 lambda 表达式、Java 类型注释以及日期和时间 API 的关键特性。
全球有 80 多种 Java SE 8 技术出版物,以八种语言提供。
到 2014 年底,全球有超过 900 万开发人员使用 Java。
Java 是世界上排名第一的开发人员平台。
全球有超过 1000 万开发人员使用 Java。
130 亿台设备运行 Java。
150 亿台设备运行 Java。
Java Magazine 拥有超过 250,000 名订阅者。
2017年9月21日JDK 9 发布具有 Project Jigsaw(Java 平台模块系统)、jshell、提前编译、jlink
和compact strings等主要功能。了解更多。
JDK 9发布后,Oracle随即宣布Java将会以持续交付的形式和更加敏捷的研发节奏向前推进,以后 JDK将会在每年的3月和9月各发布一个大版本,目的就是为避免众多功能特性被集中捆绑到一个 JDK版本上而引发交付风险。这次改革确实从根源上解决了跳票问题,但也为Java的用户和发行商带 来了颇大的压力,不仅程序员感慨“Java新版本还没开始用就已经过时了”,Oracle自己对着一堆JDK版 本分支也在挠头,不知道该如何维护更新,该如何提供技术支持。Oracle的解决方案是顺理成章地终 结掉“每个JDK版本最少维护三年”的优良传统,从此以后,每六个JDK大版本中才会被划出一个长期 支持(Long Term Support,LTS)版,只有LTS版的JDK能够获得为期三年的支持和更新,普通版的 JDK就只有短短六个月的生命周期。JDK 8和JDK 11会是LTS版,再下一个就到2021年发布的JDK 17 了。
Java 是排名第一的编程语言。
全球有 1200 万开发人员使用 Java。
有 380 亿个活动 Java 虚拟机 (JVM)。
有 210 亿个与云连接的 JVM。
为了加速开发人员的创新,Oracle 推出了为期六个月的 Java 发布节奏,从 2018 年的 Java SE 10 开始。
Java 是开发人员在云中使用的第一大语言。
Java Champions 计划拥有 150 名成员。
Java 社区进程庆祝其 20 岁生日。
Oracle 宣布将开源几个商业 Java 功能,包括应用程序类数据共享、Z 垃圾收集器 (ZGC)、Oracle Java Flight
Recorder 和 Oracle Java Mission Control。
2018年3月20日,JDK 10是六个月发布节奏中的第一个版本。新功能包括局部变量类型推断、应用程序类数据共享、基于时间的发布版本控制、完全并行的G1 垃圾收集器、根证书和线程本地握手。了解更多。
Java Mission Control的开发团队,也在2018年6月被Oracle解散。
Oracle 通过引入 Java SE 订阅计划为希望获得企业级支持的开发人员和公司增强了 Java 的商业许可选项。
2018年9月25日,JDK 11发布,这是一个LTS版本的JDK,包含17个JEP,新功能包括 HTTP 客户端、Oracle Java Flight Recorder、启动单文件源代码程序、传输层安全性 (TLS) 1.3 和 ZGC一种可扩展的实验性低延迟垃圾收集器。了解更多
2019年3月20日,JDK 12发布,具有Switch表达式(第一次预览版)、JVM 常量 API 和默认类数据共享 (CDS)存档的关键特性。了解更多。
Java SE 13 发布时具有动态 CDS归档的关键特性、取消提交未使用内存的能力、切换表达式(第二次预览)和文本块(第一次预览)。了解更多。
Java 年满 25 岁
2020年3月17日,JDK 14 发布,其中包含用于 instanceof(预览版)、JDK Flight Recorder事件流、非易失性映射字节缓冲区、有用的空指针异常、记录(预览版)、开关表达式、文本块(第二个预览版)、ZGC 的模式匹配的关键特性对于macOS 和 Windows,外部内存访问API(孵化器)和打包工具(孵化器)。了解更多。
2020 年 9 月 15 日,JDK15 发布,包含密封类(预览版)、隐藏类、instanceof模式匹配(第二版预览版)、文本块和记录(第二版预览版)等关键特性。了解更多。
Oracle 推出 [Inside.Java](https://inside.java/),提供来自 Oracle 的 Java团队的新闻和更新。
Oracle 推出 [Inside.Java](https://inside.java/podcast/) 播客系列。
2021 年 3 月 16 日,Java SE 16 发布。
2021 年 9 月 14 日,Java SE 17 LTS 发布。这个是继 Java 11 之后的有一个长期支持版本, 并且直接支持到了 2029 年 9 月。
2022 年 3 月 22 日,JDK 18发布,包含9个JEP。
相关文章:
Java中JCP, JEP, JLS, JSR是什么
迢迢牵牛星,皎皎河汉女