Summary of features of each version of JDK

Table of contents

Java SE 1.0

Java SE 1.1

Java SE 1.2

Java SE 1.3

Java SE 1.4

Java SE 5

Java SE 6

Java SE 7

Java SE 8(LTS)

Java SE 9

Java SE 10

Java SE 11(LTS)

Java SE 12

Java SE 13

Java SE 14

Java SE 15

Java SE 16

Java SE 17(LTS)

Java SE 18

Java SE 19

Java SE 20


Java SE 1.0

1996-01-23 Oak (Oak)

        The first version is a great milestone, but it is purely interpreted and uses a plug-in JIT. The performance is relatively poor and the running speed is slow.

        This version includes two parts: the operating environment (ie Java Runtime Environment, JRE) and the development environment (Java Development Kit, JDK). The operating environment includes five parts: core API, integration API, user interface API, publishing technology, and Java Virtual Machine (Java Virtual Machine, JVM); the development environment includes a compiler (javac command) for compiling Java programs.

Java SE 1.1

1997-02-19

        This version adds a JIT (Just In Time, just-in-time compilation) compiler. Compared with traditional compilers, it saves frequently used instructions in memory, and does not need to be recompiled when it is called next time. This method allows JDK There is a greater advantage in efficiency.

In addition, new features are introduced:

  1. JAR - jar包
  2. JDBC (Java Database Connectivity) - database connection specification
  3. Inner Class
  4. Java Beans
  5. RMI (Remote Method Invocation) - remote call
  6. Reflection

Java SE 1.2

1998-12-08 Playground (playground)

        JDK1.2 is an important milestone version. In this version, Sun splits the Java technology system into three directions, which are J2SE (Java 2 Platform, Standard Edition) for desktop application development, and enterprise-level development. J2EE (Java 2 Platform, Enterprise Edition) and J2ME (Java 2 Platform, Micro Edition) developed for mobile terminals such as mobile phones.

        At the language and API level, Java has added the strictfp keyword, and the Java class library has added a series of Collections collection classes that are very commonly used in Java coding.

        JDK1.2 Solaris Exact VM, with JIT interpreter, improved GC performance, accurate memory management (Accurate Memory Management), data type sensitivity and other features. But its life cycle is very short, and it will be replaced by Hotspot soon.

In addition, new features are introduced:

  1. collection framework
  2. String constants for memory mapping
  3. JIT Compiler (Just In Time)
  4. Digitally sign packaged Java files
  5. Policy tool to control authorized access to system resources
  6. JFC (Java Foundation Classes) Swing 1.0, drag and drop and Java2D class library
  7. Java plugin
  8. JDBC scrollable result sets, BLOB, CLOB, batch update and user-defined types
  9. Add sound support in Applet

Java SE 1.3

2000-05-08 Kestrel (Kestrel)

        The improvement of this version is mainly reflected in the Java class library (such as mathematical operations and new Timer API, etc.), the JNDI service has been provided as a platform-level service since JDK 1.3 (previously JNDI was only an extension service), using CORBA IIOP is used to realize the RMI communication protocol and so on. JDK1.3 has made a lot of optimizations and enhancements to all aspects of Java.

        Hotspot ships as a default virtual machine.

New features introduced include:

  1. computation
  2. Timer API (time)
  3. Java Sound API (sound)
  4. CORBA IIOP realizes the communication protocol of RMI
  5. Java 2D New Features
  6. JAR file index

Java SE 1.4

2002-02-13 Merlin

        This version is the most mature version in JDK history. At this time, the participation of companies such as Compaq, Fujitsu, SAS, Symbian, and IBM made JDK1.4 the fastest-growing JDK version. JDK1.4 can already use Java to implement most applications.

        During this period, the Java language shined in the field of enterprise applications, and a large number of open source frameworks based on the Java language emerged: Struts, WebWork, Hibernate, Spring, etc.; a large number of enterprise application servers also began to emerge: WebLogic, WebSphere, JBoss, etc.

        Classic VM has withdrawn from the stage of history.

New features introduced include:

  1. XML processing
  2. Java print service
  3. Log API (Logging)
  4. Java Web Start
  5. JDBC 3.0 API
  6. assertion mechanism
  7. Parameter API (Preferences)
  8. chained exception handling
  9. Support IPV6
  10. Regular expression (Regular)
  11. image I/O API
  12. NIO (advanced streaming)

Java SE 5

2004-09-30 Tiger (Tiger)

        At the same time, Sun changed JDK1.5 to Java 5.0 , and J2EE, J2SE, and J2ME were correspondingly changed to Java SE, Java ME, and Java EE. Added functions such as generics, enhanced for loops, variable number of formal parameters, annotations (Annotations), automatic unboxing and boxing; released new enterprise-level platform specifications, such as simplifying the complexity of EJB through new features such as annotations , and launched the EJB3.0 specification, also launched its own MVC framework specification: JSF.

JDK 5 has made great improvements in the ease of use of Java syntax. Syntactic features such as autoboxing, generics, dynamic annotations, enumerations, variable-length parameters, and traversal loops (foreach loops) are all added in JDK 5. At the virtual machine and API levels, this version improves the Java memory model (Java Memory Model, JMM), provides java.util.concurrent and other packages. In addition, JDK 5 is the last JDK version officially declared to support the Windows 9x operating system.

New features introduced include:

  1. Generic
  2. For-Each loop
  3. Automatic boxing and unboxing
  4. Class Safe Enumeration (Enum)
  5. Varargs (Varargs)
  6. import static
  7. Metadata Annotation (Annotation)
  8. Introspect
  9. Memory Model (JMM)
  10. concurrent package (java.util.concurrent)

Java SE 6

2006-12-11 Mustang

        This version introduces a new framework that supports the scripting engine, UI enhancements, enhancements to WebService support (JAX-WS2.0 and JAXB2.0), a series of new security-related enhancements, JDBC4.0, Compiler API, general Annotations support. And a lot of improvements have been made to the inside of the Java virtual machine, including quite a few changes in the implementation of locks and synchronization, garbage collection, and class loading.

        Provides preliminary dynamic language support (through the built-in Mozilla JavaScript Rhino engine), provides a compile-time annotation processor and a tiny HTTP server API, and more.

New features introduced include:

  1. Nomenclature changes
  2. Scripting language support
  3. Compile API and Micro HTTP Server API
  4. Locks and Synchronization
  5. garbage collection
  6. class loading
  7. JDBC 4.0 (jdbc-advanced)
  8. Java Compiler (interface to the Java™ programming language compiler)
  9. Pluggable annotations
  10. Native PKI (Public Key Infrastructure)
  11. Java GSS (Generic Security Service)
  12. Kerberos (a secure authentication system)
  13. LDAP (LDAP )
  14. Web Services (web service is xml transmission)
  15. Sorting and filtering of JTable
  16. Embedded database Derby

Java SE 7

2011-07-28 Dolphin (Dolphin)

        After Oracle acquired Sun, it immediately announced that it has significantly cut the target of JDK 7 to ensure that the official version of JDK 7 can be released on time on July 28, 2011.

        This version introduces new features such as binary integers, switch statements that support strings, diamond syntax, multiple exception captures, and try statements that automatically close resources. Provide a new G1 collector (G1 was still in the Experimental state when it was released, and it was not officially commercialized until Update 4 in April 2012), and strengthen the call support for non-Java languages ​​(JSR-292, this feature is in JDK 11 There are also changes), a parallelizable classloading architecture, etc.

New features introduced include:

  1. The switch statement supports String strings
  2. Generic object type inference - When calling the constructor of a generic class, you can omit the generic parameter, and the compiler will automatically judge.
  3. catch multiple exception catches - multiple exceptions are separated by using the '|' operator
  4. Support for dynamic languages
  5. Improved generic type varargs
  6. Syntactically supports collections not necessarily arrays
  7. Added tools and methods for obtaining environmental information
  8. Boolean type inversion: null pointer safety, participate in bit operations
  9. equals method between two chars
  10. safe addition, subtraction, multiplication and division
  11. Java collections (Collections) enhancements - map collections support concurrent requests
  12. Introduce the Java NIO.2 development kit
  13. Values ​​can be underscored as separators
  14. null is worth handling automatically
  15. Simplified calling variadic methods
  16. Provide GI collector
  17. Strengthen the call support for non-Java languages ​​(JSR-292, upgrade class loading architecture)

Java SE 8(LTS)

2014-03-18

        This version brings brand-new Lambda expressions, functional interfaces, Lambda expressions, streaming operations on collections, annotation updates, security enhancements, IO\NIO improvements, and complete globalization functions.

New features introduced include:

  1. Lambda expression
  2. Improved type inference
  3. Java Type Annotations
  4. duplicate comment
  5. method parameter reflection
  6. TLS 1.1 and TLS 1.2 are enabled by default
  7. Limited doPrivileged
  8. Stronger algorithms based on password encryption
  9. SSL/TLS Server Name Indication (SNI) extension support in JSSE servers
  10. Support AEAD algorithm
  11. KeyStoreEnhancements
  12. SHA-224 message digest
  13. Enhanced support for NSA Suite B encryption
  14. Better support for high-entropy random number generation
  15. New PKIXRevocationChecker class
  16. 64-bit PKCS11 for Windows
  17. New rcache type 5 replay cache in Kerberos
  18. Kerberos 5 for Protocol Transition and Constrained Delegation
  19. Disable weak encryption by default
  20. Unbound SASL for GSS-API/Kerberos 5 mechanisms
  21. SASL service for multiple hostnames
  22. JNI bridge to native JGSS on Mac OS X
  23. Support stronger ephemeral DH keys in SunJSSE provider
  24. Support for cipher suite preference customization in JSSE
  25. Brand new JavaFX
  26. Operational Enhancements for Java Tools
  27. Unicode enhancements, including support for Unicode 6.2.0
  28. Adopts Unicode CLDR data and the java.locale.providers system property
  29. New Calendar and Locale API
  30. Introduce new Date Time API
  31. Nashorn JavaScript engine
  32. parallel array sort
  33. Standard encoding and decoding Base64
  34. unsigned arithmetic support
  35. new concurrency
  36. Enhanced Functions of Java XML Technology
  37. Enhanced virtual machine operations

Java SE 9

2017-09-22

        JDK 9 was finally released with Jigsaw. In addition to Jigsaw, JDK 9 also enhanced several tools (JS Shell, JLink, JHSDB, etc.), rectified the log system of each module of HotSpot, and supported HTTP 2 client API, etc. 91 a JEP.

        JDK 9 provides more than 150 new features, including the highly anticipated modular system, interactive REPL tools: jshell, JDK compilation tools, Java public API and private code, as well as security enhancements, extension improvements, performance management improvements, etc. . It can be said that JDK 9 is a huge system project, and an overall change has been completely made.

New features introduced include:

  1. Platform-level modularity (formerly known as: Jigsaw) modular system
  2. Java's REPL tool: jShell command
  3. Multi-version compatible jar package (this is very useful in dealing with backward compatibility)
  4. Syntax Improvement: Private Methods of Interfaces
  5. Syntax Improvement: Restrictions on UnderScore (underscore) usage
  6. Underlying structure: String storage structure changes (this is very important)
  7. Collection Factory Methods: Quickly create read-only collections
  8. Enhanced Stream API
  9. Brand new HTTP client API
  10. other features

Java SE 10

2018-03-20

        The main R&D goal of this version is internal refactoring , such as unified source warehouse, unified garbage collector interface, unified just-in-time compiler interface (JVMCI already exists in JDK 9, here is the introduction of the new Graal just-in-time compiler), etc. It will be an improvement that will be of great benefit to the future development of Java, but for ordinary users, the new features of JDK 10 appear to be lacklustre. After all, it only contains 12 JEPs, and only local type inference is the visible improvement of the encoding side. .

The 12 key new features of Java 10:

  1. JEP 286: Type Inference for Local Variables. This feature has been discussed and investigated in the community for a long time, you can check the JEP 286 survey results
  2. JEP 296: Consolidating multiple code repositories of the JDK into a single repository
  3. JEP 304: Garbage Collector Interface. Improves source isolation between different garbage collectors by introducing a clean garbage collector (GC) interface.
  4. JEP 307: Introducing Parallel Full GC to G1
  5. JEP 310: Application Class Data Sharing. To improve startup and footprint, the existing Class Data Sharing ("CDS") feature is extended to allow application classes to be placed in shared archives
  6. JEP 312: Thread Local Control. Allows stopping individual threads instead of only enabling or stopping all threads
  7. JEP 313: Remove Native-Header Generation Tool (javah)
  8. JEP 314: Additional Unicode Language Tag Extensions. Including: cu (currency type), fw (day of the week for the first day of the week), rg (region coverage), tz (time zone), etc.
  9. JEP 316: Allocate Heap Memory on Alternative Memory Devices. Allows the HotSpot virtual machine to allocate Java object heaps on alternate memory devices
  10. JEP 317: Java-Based JIT Compiler (Experimental)
  11. JEP 319: Root Certificates. Root certificates in the open source Java SE Root CA program
  12. JEP 322: Time-Based Version Release Schema. "Feature releases" will contain new features, "Update releases" will only fix bugs

Java SE 11(LTS)

2018-09-25

        This version has a revolutionary garbage collector such as ZGC, and also has the visible improvement of adding the type inference in JDK 10 to the Lambda syntax. InfoQ: Java 11 officially released, interpretation of new features

The 17 key new features (JEP) of Java 11:

  1. 181 Nested class visibility control
  2. 309 Dynamic file constant
  3. 315 Improve Aarch64 Intrinsics
  4. 318 Epsilon – a no-op garbage collector
  5. 320 Remove Java EE and CORBA modules
  6. 321 HttpClient
  7. 323 Local variable syntax for Lambda parameters
  8. 324 Key agreement for Curve25519 and Curve448 algorithms
  9. 327 Unicode 10
  10. 328 Flight Recorder
  11. 329 haCha20 and Poly1305 encryption algorithm support
  12. 330 Launch Single-File Source-Code Programs (start single-file source code programs)
  13. 331 Low-overhead Heap Profiling
  14. 332 TLS 1.3 support
  15. 333 ZGC: A Scalable Low-Latency Garbage Collector (Scalable Low-Latency Garbage Collector)
  16. 335 Deprecated Nashorn JavaScript engine
  17. 336 Deprecated Pack200 tools and API

Java SE 12

2019-03-19

        It only contains 8 JEPs, which mainly include new functions such as Switch expression and Java microtest suite (JMH). The most striking feature is undoubtedly the addition of the Shen-andoah garbage collector developed by RedHat. As the first non-Oracle garbage collector, Shenandoah's goal is almost exactly the same as that of ZGC released by Oracle in JDK 11. There is inherent competition between the two.

The 8 key new features (JEP) of Java 12:

  1. 189: Shenandoah: A Low-Pause-Time Garbage Collector (Experimental): Added a new garbage collector called Shenandoah, which reduces pause times by doing evacuation while Java threads are running.
  2. 230: Microbenchmark Suite: A new set of microbenchmarks is added to enable developers to easily test the performance of the JDK based on the existing Java Microbenchmark Harness (JMH) and create new benchmarks.
  3. 325: Switch Expressions (Preview): Extend the switch statement so that it can be used as a statement or expression to simplify daily code.
  4. 334: JVM Constants API: Introduce an API to model key class-files and nominal descriptions of runtime artifacts, especially those constants that can be loaded from the constant pool.
  5. 340: One AArch64 Port, Not Two : Delete all source code related to arm64 port, keep 32-bit ARM port and 64-bit aarch64 port.
  6. 341: Default CDS Archives : Generate class data sharing (CDS) archives by default.
  7. 344: Abortable Mixed Collections for G1: When the collection of the G1 garbage collector exceeds the suspension target, the garbage collection process can be aborted.
  8. 346: Promptly Return Unused Committed Memory from G1: Improve the G1 garbage collector to automatically return Java heap memory to the operating system when it is idle.

Java SE 13

2019-09-17

        This release increases developer productivity by improving the performance, stability, and security of the Java SE platform and JDK. This time JDK13 includes 5 JEP (Java Enhancement Proposals) and a Unicode 12.1 support for a total of 6 major new features.

Six important features of JDK13:

  1. Support Unicode 12.1
  2. Dynamic CDS Archiving
  3. Reimplementation of the java.net.Socket and java.net.ServerSocket APIs
  4. Enhancements to ZGC
  5. Text Blocks (preview language feature)
  6. switch expressions (preview language feature)

Java SE 14

2020-03-17

The following 16 new features have been added to JDK 14:

  1. 305: pattern matching of instanceof (preview)
  2. 343: Packaging Tool (Incubator)
  3. 345: G1 NUMA memory allocation optimization
  4. 349: JFR Event Stream
  5. 352: Nonatomic byte buffer mapping
  6. 358: Friendly NullPointerException
  7. 359: Records (Preview)
  8. 361: Switch Expressions (Standard)
  9. 362: Solaris and SPARC ports deprecated
  10. 363: Remove CMS (Concurrent Mark Sweep) Garbage Collector
  11. 364: ZGC on macOS
  12. 365: ZGC on Windows
  13. 366: Deprecate ParallelScavenge + SerialOld GC combination
  14. 367: Remove Pack200 Tools and API
  15. 368: Text Blocks (Second Preview)
  16. 370: External Storage API (Incubator)

Java SE 15

2020-09-15

Java15 mainly has the following features:

  1. 339     Edwards-Curve Digital Signature Algorithm (EdDSA)    Montgomery and Distorted Edwards Curve Signature Algorithm
  2. 360     Sealed Classes (Preview)    Sealed Classes (Preview)
  3. 371     Hidden Classes    Hidden classes
  4. 372     Remove the Nashorn JavaScript Engine    Remove nasorn JavaScript engine
  5. 373    Reimplement the Legacy DatagramSocket API    Reimplement the old DatagramSocket API
  6. 374     Disable and Deprecate Biased Locking    Disable and Deprecate Biased Locking
  7. 375    Pattern Matching for instanceof (Second Preview    )
  8. 377    ZGC: A Scalable Low-Latency Garbage Collector    ZGC: A Scalable Low-Latency Garbage Collector
  9. 378     Text Blocks    Text Blocks
  10. 379     Shenandoah: A Low-Pause-Time Garbage Collector    Shenandoah: Low-Pause-Time Garbage Collector
  11. 381     Remove the Solaris and SPARC Ports    Remove the Solaris and SPARC ports
  12. 383     Foreign-Memory Access API (Second Incubator)    External Memory Access API (Second Incubator)
  13. 384    Records (Second Preview    )
  14. 385     Deprecate RMI Activation for Removal    recommends removing RMI activation

Java SE 16

2021-03-16

        JDK16 has brought us 17 improvements, including new language features, new tools, and improvements in memory management.

New features of JDK16:

  1. Improved memory management
  2. new packaging tool
  3. UNIX-Domain Socket channels
  4. Warnings for Value-based Classes
  5. Encapsulating JDK Internals by default
  6. Provides C++14 language features
  7. Some other new features of the preview version

Java SE 17(LTS)

2021-09-14

        Another long-support (LTS) version following the release of JDK11 3 years ago, which brings 14 JEP (JDK Enhancement Proposal) updates, including 10 new features, deletion of 2 features, and deprecation of 2 features. Spring Boot 3.0 only supports JDK 17 at a minimum, and is no longer backward compatible, which means that many developers in the future must gradually switch from JDK8 to JDK17.
New features of Java 17:

  1. 306: Revert to always strict floating-point semantics
  2. 356: Enhanced pseudo-random number generator
  3. 382: New macOS rendering pipeline
  4. 391: macOS/AArch64 port
  5. 398: Deprecate the soon-to-be-deleted Applet API
  6. 403: Strongly encapsulate the internal API of JDK
  7. 406: Switch pattern matching (preview)
  8. 407: Remove RMI activation
  9. 409: Sealing class
  10. 410: Remove experimental AOT and JIT compiler
  11. 411: Deprecation is about to delete the security manager
  12. 412: Foreign Functions and Memory API (Incubator)
  13. 414: Vector API (second feature incubation)
  14. 415: Context-specific deserialization filter

Java SE 18

2022-03-22

Nine new features brought by JDK18:

  1. 400: Default UTF-8 character encoding
  2. 408: Simple Web Server
  3. 413: Support code snippets in Javadoc
  4. 416: Reimplement reflection core functionality using method handles
  5. 417: Vector API (three hatches)
  6. 418: Internet Address Resolution SPI
  7. 419: Foreign Function & Memory API (Second Incubation)
  8. 420: switch expression (secondary incubation)
  9. 421: Deprecated delete related

Java SE 19

2022-09-20

        This version has a total of 7 new features, 4 preview features + 2 incubating features + 1 new feature.

Seven new features brought by JDK19:

  1. 405: Record Patterns (Preview) - Record Patterns (Preview)
  2. 422: Linux/RISC-V Port - Linux/RISC-V port
  3. 424: Foreign Function & Memory API (Preview) - Foreign Function and Memory API (Preview)
  4. 425: Virtual Threads (Preview) - Virtual Threads (Preview)
  5. 426: Vector API (Fourth Incubator) - Vector API (4th Incubator)
  6. 427: Pattern Matching for switch (Third Preview) - switch pattern matching (third preview)
  7. 428: Structured Concurrency (Incubator) - Structured Concurrency (Incubator)

Java SE 20

2023-03-21

New features of JDK20:

  1. 429 Scoped Values ​​(Incubator) Scoped Value (Incubator)
  2. 432 Record Patterns (Second Preview) Record Patterns (Second Preview)
  3. 433 Pattern Matching for switch (Fourth Preview) switch pattern matching (Fourth Preview)
  4. 434 Foreign Function & Memory API (Second Preview) External Function Memory API (2nd Edition)
  5. 436 Virtual Threads (Second Preview) Virtual Threads (Second Preview)
  6. 437 Structured Concurrency (Second Incubator) Structured Concurrency (Second Incubator Version)
  7. 438 Vector API (Fifth Incubator) Vector API (fifth incubator version)

reference:

New features of each version of JDK_Features of each version of jdk

Guess you like

Origin blog.csdn.net/shaogaiyue9745602/article/details/131015536