JDK update content over the years organized by ChatGPT

Original link: https://fugary.com/?p=446

ChatGPT has been very popular recently. What is more interesting is that the answers to the same questions are almost different every time, and there will always be some differences. Moreover, ChatGPT only answers questions, no matter whether they are right or not. In fact, some answers are wrong, and sometimes even back and forth. contradiction.

The following JDK upgrade content organized by ChatGPT is for reference, because the current version is GPT3.5 , and the content only has data for 9 2021 The latest JDK18 and JDK19 have no data yet.

JDK 1.0 (released January 23, 1996):

  • First release of the JDK.
  • Including Java compiler, Java virtual machine, Java class library and other tools.

JDK 1.1 (released February 19, 1997):

  • Support for inner classes and JavaBeans.
  • Introduced the AWT event system.
  • Added the JAR (Java Archive) file format for combining multiple Java class files into a single file.
  • Added JDBC (Java Database Connectivity) database access API.
  • The Java IDL (Interface Definition Language) API is introduced to allow Java applications to communicate with applications in other languages ​​through CORBA (Common Object Request Broker Architecture).

JDK 1.2 (released December 8, 1998):

  • Added Java 2 Platform, Standard Edition (J2SE).
  • Added the Swing GUI (Graphical User Interface) toolkit for creating cross-platform user interfaces.
  • Added the Java Naming and Directory Interface (JNDI) API for finding and accessing naming and directory services in distributed systems.
  • Added the Java Security API for implementing security and encryption in Java applications.
  • Added Java Plug-in technology, enabling Java applications to run in a Web browser.

JDK 1.3 (released May 8, 2000):

  • The Java Sound API has been added for implementing audio functionality in Java applications.
  • Introduces the Java Platform Debugger Architecture (JPDA) API for developing and debugging Java applications.
  • Supports Java Web Start for launching and managing Java applications on the Web.
  • Supports JavaServer Pages (JSP) technology for creating dynamic Web pages in Web applications.

JDK 1.4 (released February 13, 2002):

  • Added Java XML API for working with XML data.
  • The Java Web Services API has been introduced for implementing Web services.
  • The Java NIO (New I/O) API has been added to provide a new way of handling I/O.
  • Java Assertions are introduced for checking Java programs for errors.
  • Introduced Java Web Start, which allows Java applications to be downloaded and updated automatically.

JDK 1.5 (released September 30, 2004):

  • Generics support for the Java language was introduced.
  • Added the Java Concurrency API for multithreading and concurrent programming.
  • The JMX (Java Management Extensions) technology of the Java virtual machine is introduced to manage and monitor Java applications.
  • Added autoboxing/unboxing, allowing conversion between primitive data types and their corresponding wrapping types.
  • Enumerated types were introduced, allowing programmers to define a fixed set of enumerations.
  • Variadic methods have been added, allowing programmers to define a variable number of parameters.
  • Static imports have been added, allowing programmers to use static members directly without using the class name.

JDK 1.6 (released December 11, 2006):

  • Support JDBC4.0
  • Integrates JAXB, supports XML binding
  • Introduced the Java Compiler API, allowing Java programs to call the Java compiler at runtime
  • Introduced the JConsole tool for monitoring performance and resource usage of Java applications
  • Introduced the Scripting API, which supports calling scripting languages ​​in Java

JDK 1.7 (released July 28, 2011):

  • Improved G1 garbage collector
  • Introduced the Fork/Join framework for writing efficient parallel algorithms
  • NIO.2 was introduced to support asynchronous I/O operations
  • Introduced Switch statement to support String type
  • The Diamond operator is introduced to simplify the writing of generic code

JDK 8 (released March 18, 2014):

  • Lambda expressions, which can easily implement functional programming in Java;
  • Interface default methods, allowing interfaces to define default method implementations;
  • Functional interface, which identifies an interface with only one abstract method, and provides type support for Lambda expressions;
  • Stream API, providing a more convenient collection processing method;
  • New date and time API, more convenient to deal with date and time;
  • The meta-annotation @Repeatable allows the same annotation to be used multiple times on the same element;
  • Type Annotations, added contextual type checking for annotations;
  • Other improvements, such as JVM performance improvements, Base64 encoding and decoding, etc.

JDK 9 (released September 21, 2017):

  • Modular system, introducing the Jigsaw project, which divides JDK into multiple modules;
  • Interface private methods, allowing private methods to be defined in interfaces;
  • Java REPL (JShell), which can run Java code directly on the command line;
  • Improved Stream API, added methods such as takeWhile and dropWhile;
  • HTTP 2 client, providing support for the HTTP/2 protocol;
  • Improved GC, introduced the G1 improved version of the GC algorithm, reducing the GC pause time;
  • The collection implementation is refactored, and the original Vector, Hashtable and other classes are replaced by array-based ArrayList, HashMap and other classes.

JDK 10 (released March 20, 2018):

  • The var keyword was introduced to support type inference
  • Introduced local variable type inference
  • Introduced the Graal JIT compiler
  • Introduced Application Data Sharing feature to speed up application startup time
  • Introduced Thread-Local Handshakes (Thread-Local Handshakes) for more efficient management of thread execution status

JDK 11 (released September 25, 2018):

  • The HTTP Client API was introduced, allowing programmers to use the standard HTTP protocol for network communication.
  • Added support for Unicode 10.0, 11.0, and 12.0.
  • Introduced ZGC (Z Garbage Collector), a low-pause, high-throughput garbage collector.
  • Added support for Java Flight Recorder for collecting and analyzing application performance data in a production environment.

JDK 12 (released March 19, 2019):

  • The Switch expression is introduced, which enhances the expression ability of the Switch statement.
  • A new garbage collector, Shenandoah, has been introduced for handling large memory heaps.
  • The miniaturized JVM was introduced, allowing programmers to run Java applications on embedded devices.

JDK 13 (released September 17, 2019):

  • Text Blocks were introduced, allowing programmers to use multi-line strings in Java code.
  • An enhanced version of the Switch expression was introduced, allowing programmers to use Yield statements within Switch statements.
  • A new garbage collector, ZGC (Experimental), was introduced for handling large memory heaps.

JDK 14 (released March 17, 2020):

  • Introduced Pattern Matching for instanceof, allowing programmers to use pattern matching in instanceof expressions.
  • Records were introduced, allowing programmers to easily define immutable data classes.
  • An enhanced version of the Switch expression was introduced, allowing programmers to use arrow syntax in Switch statements.

JDK 15 (released September 15, 2020):

  • Sealed Classes were introduced, allowing programmers to limit the number of subclasses that inherit from a certain class.
  • Hidden Classes were introduced, allowing programmers to dynamically generate classes and hide them at runtime.
  • An enhanced version of Text Blocks has been introduced that allows programmers to use escape characters in strings.

JDK 16 (released March 16, 2021):

  • An enhanced version of Records is introduced that allows programmers to use constructors and static methods in Records.
  • An enhanced version of Pattern Matching for instanceof has been introduced, allowing programmers to use pattern matching in switch expressions.
  • The Vector API was introduced, allowing programmers to optimize performance using vector operations.

JDK 17 (released September 14, 2021):

  • An enhanced version of Sealed Classes was introduced, allowing programmers to declare interfaces as sealed.
  • Introduced nonsensical NullPointerException for better diagnosing the source of NullPointerException.
  • A warning for weak keys was introduced for diagnosing code that uses weak keys.

This article is transferred from: https://fugary.com/?p=446
This site is only for collection, and the copyright belongs to the original author.