History of JDK (Java Development Kit)
The Java Development Kit (JDK), officially named "Java Platform Standard Edition" or "Java SE", is needed for writing Java programs. The JDK is freely available from Sun Microsystems (now part of Oracle). The mother site for JDK (Java SE) is http://www.oracle.com/technetwork/java/javase/overview/index.html.
"JDK" or "JRE"?
JRE (Java Runtime) is needed for running Java programs. JDK (Java Development Kit), which includes JRE plus the development tools (such as compiler and debugger), is need for writing as well as running Java programs. In other words, JRE is a subset of JDK. Since you are supposed to write Java Programs, you should install JDK, which includes JRE.
Reference: "Java Version History" @ https://en.wikipedia.org/wiki/Java_version_history.
- JDK Alpha and Beta (1995): Sun Microsystem announced Java in September 23, 1995.
- JDK 1.0 (January 1996): Originally called Oak (named after the oak tree outside James Gosling's office). Renamed to Java 1 in JDK 1.0.2.
- JDK 1.1 (February 1997): Introduced AWT event model, inner class, JavaBean, JDBC, and RMI.
- J2SE 1.2 (JDK 1.2) (December 1998): Re-branded as "Java 2" and renamed JDK to J2SE (Java 2 Standard Edition). Also released J2EE (Java 2 Enterprise Edition) and J2ME (Java 2 Micro Edition). Included JFC (Java Foundation Classes - Swing, Accessibility API, Java 2D, Pluggable Look & Feel, and Drag & Drop). Also introduced Collection Framework and JIT compiler.
- J2SE 1.3 (JDK 1.3) (May 2000): Introduced Hotspot JVM.
- J2SE 1.4 (JDK 1.4) (February 2002): Introduced
assertstatement, non-blocking IO (
nio), logging API, image IO, Java webstart, regular expression (regex) support.
- J2SE 5.0 (JDK 5) (September 2004): Officially called 5.0 instead of 1.5 (by dropping the 1.). Introduced generics, autoboxing/unboxing, annotation, enum, varargs, for-each loop, static import. See "JDK 5 New Features".
- Java SE 6 (JDK 6) (December 2006): Renamed J2SE to Java SE (Java Platform Standard Edition). No new language features. See "JDK 6 New Features".
- Java SE 7 (JDK 7) (July 2011): First version after Oracle purchased Sun Microsystem - aslo called OracleJDK. Introduced Strings in
switchstatement, Binary integer literals, allowing underscores in numeric literals, improved type inference for generic instance creation (or diamond operator
<>), Catching multiple exception types and rethrowing exceptions with improved type checking. See "JDK 7 New Features".
- Java SE 9 (JDK 9) (September 21, 2017): Introduced modularization of the JDK (
module) under project Jigsaw, the Java Shell (
jshell), and more. See "JDK 9 New Features".
- Java SE 10 (18.3) (JDK 10) (March 2018): Introduced
YY.M.Removed native-header generation tool
javah. See "JDK 10 New Features".
- Java SE 11 (18.9) (LTS) (JDK 11) (September 2018): Extended
varto lambda expression. Standardize HTTP client in
- Java SE 12 (19.3) (JDK 12) (March 2019): Switch Expression (preview). See "JDK 12 New Features".
- Java SE 13 (19.9) (JDK 13) (September 2019): Switch Expression (preview), Multi-line Text Block (preview). See "JDK 13 New Features".
- Java SE 14 (20.3) (JDK 14) (March 2020)
- Java SE 15 (20.9) (JDK 15) (September 2020)
- Java SE 16 (21.3) (JDK 16) (March 2021)
- Java SE 17 (LTS) (21.9) (JDK 17) (September 2021)