📜  Java编程语言的完整历史

📅  最后修改于: 2021-05-20 05:20:49             🧑  作者: Mango

Java是James Gosling在1990年代初期开发的一种面向对象的编程语言。团队发起了这个项目,以开发用于数字设备(例如机顶盒,电视等)的语言。最初,C++被认为用于该项目中,但是由于一些原因(例如C++需要更多的内存)而被拒绝。戈斯林努力改变和扩展C++,但不久之后就投降了另一个名为Green的阶段。 James Gosling和他的团队将他们的项目称为“ Greentalk ”,其文件扩展名为.gt ,后来被称为“ OAK ”。

为什么是“橡木”?
戈斯林(Gosling )用橡树这个名字来称呼橡树,橡树仍然留在他的办公室外面。另外,Oak是团结的形象,被美国,法国,德国,罗马尼亚等许多国家选为国家树。但由于橡树技术已经成为橡树商标,因此他们后来不得不将其重命名为“ Java ”。

“Java”
戈斯林和他的团队进行了一次头脑风暴会议,会议结束后,他们想到了几个名字,例如Java,DNA,SILK,RUBY等。

Java名称是经过多次讨论后才决定的,因为它是如此独特。 Java的名称起源于一种特浓咖啡Java。高斯林在办公室附近喝咖啡时想出了这个名字。
Java是根据诸如健壮,可移植,独立于平台,高性能,多线程等原则创建的,并被《时代杂志》评为1995年十大最佳产品之一

当前, Java用于Internet编程,移动设备,游戏,电子商务解决方案等。自JDK 1.0以来, Java语言经历了一些更改,就像对标准库的类和包的各种扩充一样。除了语言的更改外,这些年来, Java类库也进行了许多轰动性的更改,该类库已从JDK 1.0中的几百个类发展到J2SE 5中的三千多个。

各种Java版本的历史:

Version Release Date Major changes
JDK Beta 1995
JDK 1.0 January 1996 The Very first version was released on January 23, 1996. The principal stable variant, JDK 1.0.2, is called Java 1.
JDK 1.1 February 1997 Was released on February 19, 1997. There were many additions in JDK 1.1 as compared to version 1.0 such as
  • A broad retooling of the AWT occasion show
  • Inner classes added to the language
  • JavaBeans
  • JDBC
  • RMI
J2SE 1.2 December 1998 “Play area” was the codename which was given to this form and was released on 8th December 1998. Its real expansion included: strictfp keyword
  • the Swing graphical API was coordinated into the centre classes
  • Sun’s JVM was outfitted with a JIT compiler out of the blue
  • Java module
  • Java IDL, an IDL usage for CORBA interoperability
  • Collections system
J2SE 1.3 May 2000 Codename- “KESTREL”
Release Date- 8th May 2000
Additions:
  • HotSpot JVM included
  • Java Naming and Directory Interface
  • JPDA
  • JavaSound
  • Synthetic proxy classes
J2SE 1.4 February 2002 Codename- “Merlin”
Release Date- 6th February 2002
Additions: Library improvements
  • Regular expressions modelled after Perl regular expressions
  • The image I/O API for reading and writing images in formats like JPEG and PNG
  • Integrated XML parser and XSLT processor (JAXP) (specified in JSR 5 and JSR 63)
  • Preferences API (java.util.prefs)

Public Support and security updates for this version ended in October 2008.

J2SE 5.0 September 2004 Codename- “Tiger”
Release Date- “30th September 2004”
Originally numbered as 1.5 which is still used as its internal version. Added several new language features such as:
  • for-each loop
  • Generics
  • Autoboxing
  • Var-args
JAVA SE 6 December 2006 Codename- “Mustang”
Released Date- 11th December 2006
Packaged with a database supervisor and encourages the utilization of scripting languages with the JVM. Replaced the name J2SE with ava SE and dropped the .0 from the version number.
Additions:
  • Upgrade of JAXB to version 2.0: Including integration of a StAX parser.
  • Support for pluggable annotations (JSR 269).
  • JDBC 4.0 support (JSR 221)
JAVA SE 7 July 2011 Codename- “Dolphin”
Release Date- 7th July 2011
Added small language changes including strings in the switch. The JVM was extended with support for dynamic languages.
Additions:
  • Compressed 64-bit pointers.
  • Binary Integer Literals.
  • Upstream updates to XML and Unicode.
JAVA SE 8 March 2014 Released Date- 18th March 2014
Language level support for lambda expressions and default methods and a new date and time API inspired by Joda Time.
JAVA SE 9 September 2017 Release Date: 21st September 2017
Project Jigsaw: designing and implementing a standard, a module system for the Java SE platform, and to apply that system to the platform itself and the JDK.
JAVA SE 10 March 2018 Released Date- 20th March
Addition:
  • Additional Unicode language-tag extensions
  • Root certificates
  • Thread-local handshakes
  • Heap allocation on alternative memory devices
  • Remove the native-header generation tool – javah.
  • Consolidate the JDK forest into a single repository.
JAVA SE 11 September 2018 Released Date- 25th September, 2018
Additions-
  • Dynamic class-file constants
  • Epsilon: a no-op garbage collector
  • The local-variable syntax for lambda parameters
  • Low-overhead heap profiling
  • HTTP client (standard)
  • Transport Layer Security (TLS) 1.3
  • Flight recorder
JAVA SE 12 March 2019 Released Date- 19th March 2019
Additions-
  • Shenandoah: A Low-Pause-Time Garbage Collector (Experimental)
  • Microbenchmark Suite
  • Switch Expressions (Preview)
  • JVM Constants API
  • One AArch64 Port, Not Two
  • Default CDS Archives