📜  Java编程语言的完整历史

📅  最后修改于: 2021-10-22 03:30:18             🧑  作者: Mango

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

为什么是“橡木”?
斯林在他办公室外的一棵橡树之后使用了橡树这个名字。此外,Oak 是团结的象征,被美国、法国、德国、罗马尼亚等众多国家选为国树。但后来不得不将其重命名为“ Java ”,因为它已经是Oak Technologies的商标。

“Java”
Gosling 和他的团队进行了头脑风暴会议,会议结束后,他们想出了几个名字,如Java、DNA、SILK、RUBY 等。

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

目前, Java用于互联网编程、移动设备、游戏、电子商务解决方案等Java语言自JDK 1.0以来经历了一些变化,就像对标准库的类和包的各种扩充一样。除了语言上的变化之外,这些年来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