Java 简明教程

Java - History

History of Java

Java 编程语言最初由 Sun Microsystems 开发,由 James Gosling 发起,并于 1995 年作为 Sun Microsystems Java 平台(Java 1.0 [J2SE])的核心组件发布。Java 的命名历史非常有趣。它曾用过很多名字。

Java programming language was originally developed by Sun Microsystems which was initiated by James Gosling and released in 1995 as core component of Sun Microsystems' Java platform (Java 1.0 [J2SE]). History of even naming of the Java is very interesting. It went under many names.

Java Name History

GreenTalk

James Gosling 领导了一个名为“绿色”的团队。这个团队的目标是创建可以的新项目。最初是开发该项目的初始选择。James Gosling 想增强 C 来实现这个目标,但由于内存使用量较高,该想法被否决,并且团队最初使用一种名为 GreenTalk 的新语言开始。使用的文件扩展名为 .gt。后来,这种语言被称为 Oak,最终成为了 Java。

James Gosling was leading a team named as 'Green' team. Target of this team was to create a new project which can. Initially C was the original choice to develop the project. James Gosling wanted to enhance C to achieve the target but due to high memory usage, that idea was rejected and team started with a new language initially named as GreenTalk. The file extension used as .gt. Later this language was termed as Oak and finally to Java.

Oak

James Gosling 将语言重命名为 Oak。他的办公室前面有一棵橡树。James Gosling 使用这个名字是因为 Oak 代表团结,而橡树是美国、法国、罗马尼亚等多个国家的国树。但 Oak 技术已经将 Oak 注册为商标,James 团队不得不为该语言集思广益想出另一个标题。

James Gosling renamed language to Oak. There was an Oak tree in front of his office. James Gosling used this name as Oak represents solidarity and Oak tree is the national tree of multiple countries like USA, France, Romania etc. But Oak technologies already had Oak as a trademark and James team had to brainstrom another title for the language.

Finally Java

团队提出了多个名称,如 DNA、Silk、Ruby 和 Java。Java 最终由团队敲定。James Gosling 根据浓缩咖啡豆的类型提出了 Java 名称。爪哇是印度尼西亚的一个岛屿,在那里发现了被称为爪哇咖啡的新咖啡。根据 James Gosling 的说法,Java 是 Silk 的首选之一。最终选择 Java,因为它非常独特,代表了动态、革命性和有趣的说法。

Team put multiple names like DNA, Silk, Ruby and Java. Java was finalized by the team. James Gosling tabled Java title based on type of espresso coffee bean. Java is an island in Indonesia where new coffee was discovered termed as Java coffee. As per James Gosling, Java was among the top choice along with Silk. Finally Java was selected as it was quite unique and represented the essence of being dynamic,revolutionary and fun to say.

Sun 于 1995 年发布了第一个公共实施版本 Java 1.0。它承诺*Write Once, Run Anywhere*(WORA),提供了在流行平台上免费运行时。

Sun released the first public implementation as Java 1.0 in 1995. It promised Write Once, Run Anywhere (WORA), providing no-cost run-times on popular platforms.

2006 年 11 月 13 日,Sun 根据 GNU 通用公共许可证 (GPL) 的条款发布了大部分 Java 作为自由和开放源代码软件。

On 13 November, 2006, Sun released much of Java as free and open source software under the terms of the GNU General Public License (GPL).

2007 年 5 月 8 日,Sun 完成了该过程,使 Java 的所有核心代码成为自由和开源,除了 Sun 没有持有其版权的一小部分代码。

On 8 May, 2007, Sun finished the process, making all of Java’s core code free and open-source, aside from a small portion of code to which Sun did not hold the copyright.

最新发布的 Java Standard Edition 是 Java SE 21。随着 Java 的进步及其广泛的普及,构建了多种配置以适应各种类型的平台。例如:用于企业应用程序的 J2EE,用于移动应用程序的 J2ME。

The latest release of the Java Standard Edition is Java SE 21. With the advancement of Java and its widespread popularity, multiple configurations were built to suit various types of platforms. For example: J2EE for Enterprise Applications, J2ME for Mobile Applications.

Java Versions History

在近 30 年的时间里,Java 已经发布了许多小版本和主要版本。以下是迄今为止 Java 版本的简要说明。

Over the period of nearly 30 years, Java has seen many minor and major versions. Following is a brief explaination of versions of java till date.

Sr.No.

Version

Date

Description

1

JDK Beta

1995

Initial Draft version

2

JDK 1.0

23 Jan 1996

A stable variant JDK 1.0.2 was termed as JDK 1

3

JDK 1.1

19 Feb 1997

Major features like JavaBeans, RMI, JDBC, inner classes were added in this release.

4

JDK 1.2

8 Dec 1998

Swing, JIT Compiler, Java Modules, Collections were introduced to JAVA and this release was a great success.

5

JDK 1.3

8 May 2000

HotSpot JVM, JNDI, JPDA, JavaSound and support for Synthetic proxy classes were added.

6

JDK 1.4

6 Feb 2002

Image I/O API to create/read JPEG/PNG image were added. Integrated XML parser and XSLT processor (JAXP) and Preferences API were other important updates.

7

JDK 1.5 or J2SE 5

30 Sep 2004

Various new features were added to the language like foreach, var-args, generics etc.

8

JAVA SE 6

11 Dec 2006

1. notation was dropped to SE and upgrades done to JAXB 2.0, JSR 269 support and JDBC 4.0 support added.

9

JAVA SE 7

7 Jul 2011

Support for dynamic languages added to JVM. Another enhancements included string in switch case, compressed 64 bit pointers etc.

10

JAVA SE 8

18 Mar 2014

Support for functional programming added. Lambda expressions,streams, default methods, new date-time APIs introduced.

11

JAVA SE 9

21 Sep 2017

Module system introduced which can be applied to JVM platform.

12

JAVA SE 10

20 Mar 2018

Unicode language-tag extensions added. Root certificates, threadlocal handshakes, support for heap allocation on alternate memory devices etc were introduced.

13

JAVA SE 11

5 Sep 2018

Dynamic class-file constants,Epsilon a no-op garbage collector, local-variable support in lambda parameters, Low-overhead heap profiling support added.

14

JAVA SE 12

19 Mar 2019

Experimental Garbage Collector,Shenandoah: A Low-Pause-Time Garbage Collector, Microbenchmark Suite, JVM Constants API added.

15

JAVA SE 13

17 Sep 2019

Feature added - Text Blocks (Multiline strings), Enhanced Thread-local handshakes.

16

JAVA SE 14

17 Mar 2020

Feature added - Records, a new class type for modelling, Pattern Matching for instanceof, Intuitive NullPointerException handling.

17

JAVA SE 15

15 Sep 2020

Feature added - Sealed Classes, Hidden Classes, Foreign Function and Memory API (Incubator).

18

JAVA SE 16

16 Mar 2021

Feature added as preview - Records, Pattern Matching for switch, Unix Domain Socket Channel (Incubator) etc.

19

JAVA SE 17

14 Sep 2021

Feature added as finalized - Sealed Classes, Pattern Matching for instanceof, Strong encapsulation of JDK internals by default. New macOS rendering pipeline etc.

20

JAVA SE 18

22 Mar 2022

Feature added - UTF-8 by Default, Code Snippets in Java API Documentation, Vector API (Third incubator), Foreign Function, Memory API (Second Incubator) etc.

21

JAVA SE 19

20 Sep 2022

Feature added - Record pattern, Vector API (Fourth incubator), Structured Concurrency (Incubator) etc.

22

JAVA SE 20

21 Mar 2023

Feature added - Scoped Values (Incubator), Record Patterns (Second Preview), Pattern Matching for switch (Fourth Preview),Foreign Function & Memory API (Second Preview) etc.

22

JAVA SE 21

19 Sep 2023

Feature added - String Templates (Preview), Sequenced Collections, Generational ZGC, Record Patterns, Pattern Matching for switch etc.