Java version history
The Java language has undergone several changes since JDK 1.0 as well as numerous additions of classes and packages to the standard library. Since J2SE 1.4, the evolution of the Java language has been governed by the Java Community Process (JCP), which uses Java Specification Requests (JSRs) to propose and specify additions and changes to the Java platform. The language is specified by the Java Language Specification (JLS); changes to the JLS are managed under JSR 901. In September 2017, Mark Reinhold, chief Architect of the Java Platform, proposed to change the release train to "one feature release every six months" rather than the then-current two-year schedule.[1][2] This proposal took effect for all following versions, and is still the current release schedule.
In addition to the language changes, other changes have been made to the Java Class Library over the years, which has grown from a few hundred classes in JDK 1.0 to over three thousand in J2SE 5. Entire new APIs, such as Swing and Java2D, have been introduced, and many of the original JDK 1.0 classes and methods have been deprecated, and very few APIs have been removed (at least one, for threading, in Java 22[3]). Some programs allow the conversion of Java programs from one version of the Java platform to an older one (for example Java 5.0 backported to 1.4) (see Java backporting tools).
Regarding Oracle Java SE Support Roadmap,[4] version 22 is the latest one, and versions 21, 17, 11 and 8 are the currently supported long-term support (LTS) versions, where Oracle Customers will receive Oracle Premier Support. Oracle continues to release no-cost public Java 8 updates for development[4] and personal use indefinitely. Oracle also continues to release no-cost public Java 17 LTS updates for all users, including commercial and production use until September 2024.[5]
In the case of OpenJDK, both commercial long-term support and free software updates are available from multiple organizations in the broader community.[6]
Java 22 was released on March 19, 2024.
Release table
[edit]Version | Type | Class file format version[7] | Release date | End of public updates (free) | End of extended support (paid) |
---|---|---|---|---|---|
JDK 1.0 | 44 | 23rd January 1996 | May 1996 | — | |
JDK 1.1 | 45 | 18th February 1997 | October 2002 | — | |
J2SE 1.2 | 46 | 4th December 1998 | November 2003 | — | |
J2SE 1.3 | 47 | 8th May 2000 | March 2006 | — | |
J2SE 1.4 | 48 | 13th February 2002 | October 2008 | — | |
J2SE 5.0 | 49 | 30th September 2004 | October 2009 | — | |
Java SE 6 | 50 | 11th December 2006 | April 2013 | December 2016 for Red Hat[8] October 2018 for Oracle[9] March 2026 for BellSoft Liberica[10] December 2027 for Azul[11] | |
Java SE 7 | 51 | 28th July 2011 | July 2015 | June 2020 for Red Hat[8] July 2022 for Oracle[12] March 2026 for BellSoft Liberica[10] December 2027 for Azul[11] | |
Java SE 8 | LTS | 52 | 18th March 2014 | April 2019 for Oracle November 2026 for Eclipse Temurin[13] November 2026 for Red Hat[8] July 2026 for Amazon Corretto[14] December 2030 for Azul[11] March 2031 for BellSoft Liberica[10] | December 2030 for Oracle[4] |
Java SE 9 | 53 | 21st September 2017 | March 2018 | — | |
Java SE 10 | 54 | 20th March 2018 | September 2018 | — | |
Java SE 11 | LTS | 55 | 25th September 2018 | April 2019 for Oracle October 2024 for Red Hat[8] March 2027 for BellSoft Liberica[10] October 2027 for Eclipse Temurin[13] October 2027 for Amazon Corretto[14] January 2032 for Azul[11] | January 2032 for Oracle[4] |
Java SE 12 | 56 | 19th March 2019 | September 2019 | — | |
Java SE 13 | 57 | 17th September 2019 | March 2020 | — | |
Java SE 14 | 58 | 17th March 2020 | September 2020 | — | |
Java SE 15 | 59 | 16th September 2020 | March 2021 | — | |
Java SE 16 | 60 | 16th March 2021 | September 2021 | — | |
Java SE 17 | LTS | 61 | 14th September 2021 | September 2024 for Oracle[4] October 2027 for Eclipse Temurin[13] October 2027 for Red Hat[8] October 2029 for Amazon Corretto[14] September 2029 for Azul[11] March 2030 for BellSoft Liberica[10] | September 2029 for Oracle[4] |
Java SE 18 | 62 | 22nd March 2022 | September 2022 | — | |
Java SE 19 | 63 | 20th September 2022 | March 2023 | — | |
Java SE 20 | 64 | 21st March 2023 | September 2023 | — | |
Java SE 21 | LTS | 65 | 19th September 2023 | September 2026 for Oracle[4] December 2029 for Red Hat[8] December 2029 for Eclipse Temurin[13] October 2030 for Amazon Corretto[14] September 2031 for Azul[11] March 2032 for BellSoft Liberica[10] | September 2031 for Oracle[4] |
Java SE 22 | 66 | 19th March 2024 | September 2024 | — | |
Java SE 23 | 67 | September 2024 | March 2025 | — | |
Java SE 24 | 68 | March 2025 | September 2025 | — | |
Java SE 25 | LTS | 69 | September 2025 | September 2028 for Oracle[4] | September 2033 for Oracle[4] |
Legend: Old version Older version, still maintained Latest version Future release |
JDK 1.0
[edit]Released | January 23, 1996 |
---|
The first version was released on January 23, 1996.[15][16] The first stable version, JDK 1.0.2, is called Java 1.[16]
JDK 1.1
[edit]Released | February 19, 1997 |
---|
Major additions in the release on February 19, 1997 included:[17]
- extensive retooling of the Abstract Window Toolkit (AWT) event model
- inner classes added to the language
- JavaBeans
- Java Database Connectivity (JDBC)
- Java remote method invocation (RMI) and serialization
- reflection which supported Introspection only, no modification at runtime was possible. (The ability to modify objects reflectively was added in J2SE 1.2, by introducing the AccessibleObject class and its subclasses such as the Field class.)
- Just-in-time compilation (JIT) on Microsoft Windows platforms, produced for JavaSoft by Symantec
- Internationalization and Unicode support originating from Taligent[18]
J2SE 1.2
[edit]Codename | Playground |
---|---|
Released | December 8, 1998 |
The release on December 8, 1998 and subsequent releases through J2SE 5.0 were rebranded retrospectively Java 2 and the version name "J2SE" (Java 2 Platform, Standard Edition) replaced JDK to distinguish the base platform from J2EE (Java 2 Platform, Enterprise Edition) and J2ME (Java 2 Platform, Micro Edition). This was a very significant release of Java as it tripled the size of the Java platform to 1520 classes in 59 packages. Major additions included:[19]
strictfp
keyword (by JVM 17 an obsolete keyword, should not be used in new code)- The Swing graphical API was integrated into the core classes.
- Sun's JVM was equipped with a JIT compiler for the first time.
- Java plug-in
- Java IDL, an IDL implementation for CORBA interoperability
- Collections framework
J2SE 1.3
[edit]Codename | Kestrel |
---|---|
Released | May 8, 2000 |
The most notable changes in the May 8, 2000 release were:[20][21]
- HotSpot JVM included (the HotSpot JVM was first released in April 1999 for the J2SE 1.2 JVM)
- RMI was modified to support optional compatibility with CORBA.
- Java Naming and Directory Interface (JNDI) included in core libraries (previously available as an extension)
- Java Platform Debugger Architecture (JPDA)
- JavaSound
- Synthetic proxy classes
Java 1.3 is the last release of Java to officially support Microsoft Windows 95.[22]
J2SE 1.4
[edit]Codename | Merlin |
---|---|
Released | February 6, 2002 |
Support ended | |
Public | October 2008 |
Paid | February 2013 |
The February 6, 2002 release was the first release of the Java platform developed under the Java Community Process as JSR 59. Major changes included:[23][24]
- Language changes
- Library improvements
- Regular expressions modeled after Perl regular expressions
- Exception chaining allows an exception to encapsulate original lower-level exception
- Internet Protocol version 6 (IPv6) support
- Non-blocking I/O (named NIO) (specified in JSR 51)
- Logging API (specified in JSR 47)
- 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)
- Integrated security and cryptography extensions (JCE, JSSE, JAAS)
- Java Web Start included (Java Web Start was first released in March 2001 for J2SE 1.3) (specified in JSR 56)
- Preferences API (
java.util.prefs
)
Public support and security updates for Java 1.4 ended in October 2008. Paid security updates for Oracle customers ended in February 2013.[25]
Java SE 5
[edit]Codename | Tiger |
---|---|
Released | September 30, 2004 |
Support ended | |
Public | November 2009 |
Paid | April 2015 |
The release on September 30, 2004 was originally numbered 1.5, which is still used as the internal version number. The number was changed to "better reflect the level of maturity, stability, scalability and security of the J2SE".[26] This version was developed under JSR 176.
Java SE 5 entered its end-of-public-updates period on April 8, 2008; updates are no longer available to the public as of November 3, 2009. Updates were available to paid Oracle customers until May 2015.[4]
Tiger added a number of significant new language features:[27][28]
- Generics: provides compile-time (static) type safety for collections and eliminates the need for most typecasts (type conversion) (specified by JSR 14)
- Metadata: also called annotations; allows language constructs such as classes and methods to be tagged with additional data, which can then be processed by metadata-aware utilities (specified by JSR 175)
- Autoboxing/unboxing: automatic conversions between primitive types (such as
int
) and primitive wrapper classes (such asInteger
) (specified by JSR 201) - Enumerations: the
enum
keyword creates a typesafe, ordered list of values (such asDay.MONDAY
,Day.TUESDAY
, etc.); previously this could only be achieved by non-typesafe constant integers or manually constructed classes (typesafe enum pattern) (specified by JSR 201) - Varargs: the last parameter of a method can now be declared using a type name followed by three dots (e.g.
void drawtext(String... lines)
); in the calling code any number of parameters of that type can be used and they are then placed in an array to be passed to the method, or alternatively the calling code can pass an array of that type - Enhanced
for each
loop: thefor
loop syntax is extended with special syntax for iterating over each member of either an array or anyIterable
, such as the standardCollection
classes (specified by JSR 201) - Improved semantics of execution for multi-threaded Java programs; the new Java memory model addresses issues of complexity, effectiveness, and performance of previous specifications[29]
- Static imports
There were also the following improvements to the standard libraries:
- Automatic stub generation for RMI objects
- Swing: New skinnable look and feel, called synth
- The concurrency utilities in package
java.util.concurrent
[30] - Scanner class for parsing data from various input streams and buffers
Java 5 is the last release of Java to officially support Microsoft Windows 98 and Windows ME,[31] while Windows Vista was the newest version of Windows that Java SE 5 was supported on prior to Java 5 going end-of-life in October of 2009.[25]
Java 5 Update 5 (1.5.0_05) is the last release of Java to work on Windows 95 (with Internet Explorer 5.5 installed) and Windows NT 4.0.[32]
Java 5 was first available on Apple Mac OS X 10.4 (Tiger)[33] and was the default version of Java installed on Apple Mac OS X 10.5 (Leopard).
Public support and security updates for Java 1.5 ended in November 2009. Paid security updates for Oracle customers ended in April 2015.
Versioning change
[edit]This version introduced a new versioning system for the Java language, although the old versioning system continued to be used for developer libraries:
Both version numbers "1.5.0" and "5.0" are used to identify this release of the Java 2 Platform Standard Edition. Version "5.0" is the product version, while "1.5.0" is the developer version. The number "5.0" is used to better reflect the level of maturity, stability, scalability and security of the J2SE.
— "Version 1.5.0 or 5.0?", Java release notes[34]
This correspondence continued through later releases (Java 6 = JDK 1.6, Java 7 = JDK 1.7, and so on).
Java SE 6
[edit]Codename | Mustang |
---|---|
Released | November 11, 2006 |
Support ended | |
Public | February 2013 |
As of the version released on December 11, 2006, Sun replaced the name "J2SE" with Java SE and dropped the ".0" from the version number.[35] Internal numbering for developers remains 1.6.0.[36]
This version was developed under JSR 270.
During the development phase, new builds including enhancements and bug fixes were released approximately weekly. Beta versions were released in February and June 2006, leading up to a final release that occurred on December 11, 2006.
Major changes included in this version:[37][38]
- Support for older Win9x versions dropped; unofficially, Java 6 Update 7 was the last release of Java shown to work on these versions of Windows.[citation needed] This is believed[by whom?] to be due to the major changes in Update 10.
- Scripting Language Support (JSR 223): Generic API for tight integration with scripting languages, and built-in Mozilla JavaScript Rhino integration.
- Dramatic performance improvements for the core platform,[39][40] and Swing.
- Improved Web Service support through JAX-WS (JSR 224).
- JDBC 4.0 support (JSR 221).
- Java Compiler API (JSR 199): an API allowing a Java program to select and invoke a Java Compiler programmatically.
- Upgrade of JAXB to version 2.0: Including integration of a StAX parser.
- Support for pluggable annotations (JSR 269).[41]
- Many GUI improvements, such as integration of SwingWorker in the API, table sorting and filtering, and true Swing double-buffering (eliminating the gray-area effect).
- JVM improvements include: synchronization and compiler performance optimizations, new algorithms and upgrades to existing garbage collection algorithms, and application start-up performance.
Java 6 can be installed to Mac OS X 10.5 (Leopard) running on 64-bit (Core 2 Duo and higher) processor machines.[42] Java 6 is also supported by both 32-bit and 64-bit machines running Mac OS X 10.6 (Snow Leopard).
Java 6 reached the end of its supported life in February 2013, at which time all public updates, including security updates, were scheduled to be stopped.[43][44] Oracle released two more updates to Java 6 in March and April 2013, which patched some security vulnerabilities.[45][46]
Java 6 updates
[edit]After Java 6 release, Sun, and later Oracle, released several updates which, while not changing any public API, enhanced end-user usability or fixed bugs.[47]
Java SE 7
[edit]Codename | Dolphin[84] |
---|---|
Released | July 28, 2011 |
Support ended | |
Public | April 2015 |
Paid | June 2022 |
Java 7 was a major update that launched on July 7, 2011[85] and was made available for developers on July 28, 2011.[86] The development period was organized into thirteen milestones; on June 6, 2011, the last of the thirteen milestones was finished.[86][87] On average, 8 builds (which generally included enhancements and bug fixes) were released per milestone. The feature list at the OpenJDK 7 project lists many of the changes.
Additions in Java 7 include:[88]
- JVM support for dynamic languages, with the new
invokedynamic
bytecode under JSR-292,[89] following the prototyping work currently done on the Multi Language Virtual Machine - Compressed 64-bit pointers[90] (available in Java 6 with
-XX:+UseCompressedOops
)[91] - These small language changes (grouped under a project named Coin):[92]
- Strings in switch[93]
- Automatic resource management in try-statement aka try-with-resources statement[94]
- Improved type inference for generic instance creation, aka the diamond operator
<>
[95] - Simplified varargs method declaration[96]
- Binary integer literals[97]
- Allowing underscores in numeric literals[98]
- Catching multiple exception types and rethrowing exceptions with improved type checking[99]
- Concurrency utilities under JSR 166[100]
- New file I/O library (defined by JSR 203) adding support for multiple file systems, file metadata and symbolic links. The new packages are
java.nio.file
,java.nio.file.attribute
andjava.nio.file.spi
[101][102] - Timsort is used to sort collections and arrays of objects instead of merge sort
- Library-level support for elliptic curve cryptography algorithms
- An XRender pipeline for Java 2D, which improves handling of features specific to modern GPUs
- New platform APIs for the graphics features originally implemented in version 6u10 as unsupported APIs[103]
- Enhanced library-level support for new network protocols, including SCTP and Sockets Direct Protocol
- Upstream updates to XML and Unicode
- Java deployment rule sets[104]
Lambda (Java's implementation of lambda functions), Jigsaw (Java's implementation of modules), and part of Coin were dropped from Java 7, and released as part of Java 8 (except for Jigsaw, which was released in Java 9).[105][106]
Java 7 was the default version to download on java.com from April 2012 until Java 8 was released.[107]
Java 7 updates
[edit]Oracle issued public updates to the Java 7 family on a quarterly basis[108] until April 2015 when the product reached the end of its public availability.[109] Further updates for JDK 7, which continued until July 2022, are only made available to customers with a support contract.[110]
Java SE 8
[edit]LTS version | |
Released | March 18, 2014 |
---|---|
# of JEPs | 8 |
Java 8 was released on March 18, 2014,[146][147] and included some features that were planned for Java 7 but later deferred.[148]
Work on features was organized in terms of JDK Enhancement Proposals (JEPs).[149]
- JSR 335, JEP 126: Language-level support for lambda expressions (officially, lambda expressions; unofficially, closures) under Project Lambda[150] and default methods (virtual extension methods)[151][152][153] which can be used to add methods to interfaces without breaking existing implementations. There was an ongoing debate in the Java community on whether to add support for lambda expressions.[154][155] Sun later declared that lambda expressions would be included in Java and asked for community input to refine the feature.[156] Supporting lambda expressions also enables functional-style operations on streams of elements, such as MapReduce-inspired transformations on collections. Default methods can be used by an author of an API to add new methods to an interface without breaking the old code using it. Although it was not their primary intent,[151] default methods can also be used for multiple inheritance of behavior (but not state).
- JEP 174: Project Nashorn, a JavaScript runtime which can run JavaScript code embedded within applications
- JEP 104: Annotation on Java types
- Unsigned integer arithmetic[157]
- JEP 120: Repeating annotations
- JEP 150: Date and time API
- JEP 178: Statically-linked JNI libraries
- JEP 153: Launch JavaFX applications (direct launching of JavaFX application JARs)
- JEP 122: Remove the permanent generation
Java 8 is not supported on Windows XP[158] but as of JDK 8 update 25, it can still be installed and run under Windows XP.[159] Previous updates of JDK 8 could be run under XP by downloading archived zip format file and unzipping it for the executable. The last version of Java 8 could run on XP is update 251.
From October 2014, Java 8 was the default version to download (and then again the download replacing Java 9) from the official website.[160] "Oracle will continue to provide Public Updates and auto updates of Java SE 8, Indefinitely for Personal Users".[161]
Java 8 updates
[edit]Java SE 9
[edit]Released | September 21, 2017 |
---|---|
# of JEPs | 9 |
Support ended | |
Public | March 2018 |
Java SE 9 was made available on September 21, 2017[238] due to controversial acceptance of the current implementation of Project Jigsaw by Java Executive Committee[239] which led Oracle to fix some open issues and concerns and to refine some critical technical questions. In the last days of June 2017, Java Community Process expressed nearly unanimous consensus on the proposed Module System scheme.[240]
- JSR 376: Modularization of the JDK under Project Jigsaw (Java Platform Module System)[106]
- JavaDB was removed from JDK[241]
- JEP 193: Variable handles, define a standard means to invoke the equivalents of various
java.util.concurrent.atomic
andsun.misc.Unsafe
operations - JEP 213: Milling Project Coin, allow @SafeVarargs on private instance methods; Allow effectively-final variables to be used as resources in the try-with-resources statement; Allow diamond with anonymous classes if the argument type of the inferred type is denotable; Complete the removal, begun in Java SE 8, of underscore from the set of legal identifier names; Support for private methods in interfaces
- JEP 222: jshell: The Java Shell (Read-Eval-Print Loop): JShell is a REPL command-line interface for the Java language.[242]
- JEP 254: Compact Strings
- JEP 263: HiDPI graphics: automatic scaling and sizing
- JEP 266: More concurrency updates, it includes a Java implementation of Reactive Streams,[243] including a new
Flow
class[244] that included the interfaces previously provided by Reactive Streams[245] - JEP 268: XML catalogs
- JEP 282: jlink: The Java Linker, create a tool that can assemble and optimize a set of modules and their dependencies into a custom run-time image. It effectively allows to produce a fully usable executable including the JVM to run it
- JEP 295: Ahead-of-Time Compilation, ahead-of-time compilation provided by GraalVM
The first Java 9 release candidate was released on August 9, 2017.[246] The first stable release of Java 9 was on September 21, 2017.[247]
History
[edit]At JavaOne 2011, Oracle discussed features they hoped to release for Java 9 in 2016.[248] Java 9 should include better support for multi-gigabyte heaps, better native code integration, a different default garbage collector (G1, for "shorter response times")[249] and a self-tuning JVM.[250] In early 2016, the release of Java 9 was rescheduled for March 2017[251] and later again postponed four more months to July 2017.[252]
Java 9 updates
[edit]Java SE 10
[edit]Released | March 20, 2018 |
---|---|
# of JEPs | 12 |
Support ended | |
Public | September 2018 |
OpenJDK 10 was released on March 20, 2018, with twelve new features confirmed.[258] Among these features were:
- JEP 286: Local-Variable Type Inference
- JEP 296: Consolidate the JDK Forest into a Single Repository
- JEP 304: Garbage-Collector Interface
- JEP 307: Parallel Full GC for G1
- JEP 310: Application Class-Data Sharing
- JEP 312: Thread-Local Handshakes
- JEP 313: Remove the Native-Header Generation Tool (javah)
- JEP 314: Additional Unicode Language-Tag Extensions
- JEP 316: Heap Allocation on Alternative Memory Devices
- JEP 317: Experimental Java-Based JIT Compiler
- JEP 319: Root Certificates
- JEP 322: Time-Based Release Versioning
The first of these JEP 286 Local-Variable Type Inference, allows the var
keyword to be used for local variables with the actual type calculated by the compiler. So we can do:
var list = new ArrayList<String>(); // infers ArrayList<String>var stream = list.stream(); // infers Stream<String>
Java 10 updates
[edit]Java SE 11
[edit]LTS version | |
Released | September 25, 2018 |
---|---|
# of JEPs | 17 |
Removal(s) | |
Notable | Java applets, Java Web Start, JavaFX, JavaEE, and CORBA modules |
JDK 11 was released on September 25, 2018 and the version is currently open for bug fixes. It offers LTS, or Long-Term Support. Among others, Java 11 includes a number of new features, such as:[264]
- JEP 181: Nest-Based Access Control
- JEP 309: Dynamic Class-File Constants
- JEP 315: Improve Aarch64 Intrinsics
- JEP 318: Epsilon: A No-Op Garbage Collector
- JEP 320: Remove the Java EE and CORBA Modules
- JEP 321: HTTP Client (Standard)
- JEP 323: Local-Variable Syntax for Lambda Parameters
- JEP 324: Key Agreement with Curve25519 and Curve448
- JEP 327: Unicode 10
- JEP 328: Flight Recorder
- JEP 329: ChaCha20 and Poly1305 Cryptographic Algorithms
- JEP 330: Launch Single-File Source-Code Programs
- JEP 331: Low-Overhead Heap Profiling
- JEP 332: Transport Layer Security (TLS) 1.3
- JEP 333: ZGC: A Scalable Low-Latency Garbage Collector (Experimental)
- JEP 335: Deprecate the Nashorn JavaScript Engine
- JEP 336: Deprecate the Pack200 Tools and API
A number of features from previous releases were dropped; in particular, Java applets and Java Web Start are no longer available. JavaFX, Java EE and CORBA modules have been removed from JDK.[265]
Java 11 updates
[edit]Java SE 12
[edit]Released | March 19, 2019 |
---|---|
# of JEPs | 8 |
Addition(s) | |
Preview(s) | Enhanced switch statements |
Support ended | |
Public | September 2019 |
JDK 12 was released on March 19, 2019. Among others, Java 12 includes a number of new features, such as:[312]
- JEP 189: Shenandoah: A Low-Pause-Time Garbage Collector (Experimental)
- JEP 230: Microbenchmark Suite
- JEP 325: Switch Expressions (Preview)
- JEP 334: JVM Constants API
- JEP 340: One AArch64 Port, Not Two
- JEP 341: Default CDS Archives
- JEP 344: Abortable Mixed Collections for G1
- JEP 346: Promptly Return Unused Committed Memory from G1
The preview feature JEP 325 extends the switch
statement so it can also be used as an expression, and adds a new form of case label where the right hand side is an expression. No break statement is needed. For complex expressions a yield
statement can be used. This becomes standard in Java SE 14.
int ndays = switch(month) { case JAN, MAR, MAY, JUL, AUG, OCT, DEC -> 31; case APR, JUN, SEP, NOV -> 30; case FEB -> { if (year % 400 == 0) yield 29; else if (year % 100 == 0) yield 28; else if (year % 4 == 0) yield 29; else yield 28; }};
Java 12 updates
[edit]Java SE 13
[edit]Released | September 17, 2019 |
---|---|
# of JEPs | 5 |
Addition(s) | |
Preview(s) | Enhanced switch statements, text blocks |
Support ended | |
Public | March 2023[317] |
JDK 13 was released on September 17, 2019. Java 13 includes the following new features, as well as "hundreds of smaller enhancements and thousands of bug fixes".[318]
- JEP 350: Dynamic CDS Archives
- JEP 351: ZGC: Uncommit Unused Memory
- JEP 353: Reimplement the Legacy Socket API
- JEP 354: Switch Expressions (Preview)
- JEP 355: Text Blocks (Preview)
JEP 355 Text Blocks allows multiline string literals:
String html = """ <html lang="en"> <body> <p>Hello, world</p> </body> </html> """;
Java 13 updates
[edit]Java SE 14
[edit]Released | March 17, 2020 |
---|---|
# of JEPs | 16 |
Addition(s) | |
Notable | Helpful NullPointerExceptions, enhanced switch statements |
Preview(s) | Pattern matching for instanceof, records, text blocks |
Incubating | jpackager, Foreign memory access |
Removal(s) | |
Notable | Remove Concurrent Mark Sweep garbage collector |
Support ended | |
Public | September 2020 |
JDK 14 was released on March 17, 2020. Java 14 includes the following new features, as well as "hundreds of smaller enhancements and thousands of bug fixes".[323]
- JEP 305: Pattern Matching for instanceof (Preview)
- JEP 343: Packaging Tool (Incubator)
- JEP 345: NUMA-Aware Memory Allocation for G1
- JEP 349: JFR Event Streaming
- JEP 352: Non-Volatile Mapped Byte Buffers
- JEP 358: Helpful NullPointerExceptions
- JEP 359: Records (Preview)
- JEP 361: Switch Expressions (Standard)
- JEP 362: Deprecate the Solaris and SPARC Ports
- JEP 363: Remove the Concurrent Mark Sweep (CMS) Garbage Collector
- JEP 364: ZGC on macOS
- JEP 365: ZGC on Windows
- JEP 366: Deprecate the ParallelScavenge + SerialOld GC Combination
- JEP 367: Remove the Pack200 Tools and API
- JEP 368: Text Blocks (Second Preview)
- JEP 370: Foreign-Memory Access API (Incubator)
JEP 305, Pattern Matching for instanceof simplifies the common case of an instanceof
test being immediately followed by cast, replacing
if (obj instanceof String) { String s = (String)obj; System.out.println(s.length());}
с
if (obj instanceof String s) { System.out.println(s.length());}
JEP 359 Records позволяет легко создавать простые неизменяемые классы, подобные Tuple . [324]
record Point(int x, int y) { }Point p = new Point(3, 4);System.out.println(p.x());
Обновления Java 14
[ редактировать ]Ява SE 15
[ редактировать ]Выпущенный | 15 сентября 2020 г. |
---|---|
№ JEP p | 14 |
Дополнение(я) | |
Примечательный | Скрытые классы, ZGC ( сборщик мусора ), Шенандоа (сборщик мусора), текстовые блоки |
Предварительный просмотр | Запечатанные классы , сопоставление экземпляров с образцом , записи |
Инкубация | Доступ к внешней памяти |
Удаление(я) | |
Примечательный | Движок JavaScript, Solaris и SPARC порты |
Поддержка прекращена | |
Общественный | март 2023 г. [317] |
JDK 15 был выпущен 15 сентября 2020 года. В Java 15 добавлена, например, поддержка многострочных строковых литералов (также известных как текстовые блоки). Сборщики мусора Shenandoah и Z (последние иногда обозначаются сокращенно ZGC) теперь готовы к использованию в производстве (т.е. больше не помечены как экспериментальные). Поддержка операционной системы Oracle Solaris (и процессоров SPARC) прекращена (хотя она все еще доступна, например, в Java 11). Механизм JavaScript Nashorn удален. Также удалены некоторые корневые сертификаты CA.
- JEP 339: Алгоритм цифровой подписи Эдвардса (EdDSA)
- JEP 360: запечатанные классы (предварительная версия)
- JEP 371: Скрытые классы
- JEP 372: удаление JavaScript-движка Nashorn
- JEP 373: переопределить устаревший API DatagramSocket
- JEP 374: отключение и прекращение поддержки смещенной блокировки
- JEP 375: Сопоставление с образцом для экземпляра (вторая предварительная версия)
- JEP 377: ZGC: масштабируемый сборщик мусора с малой задержкой
- JEP 378: Текстовые блоки
- JEP 379: Шенандоа: сборщик мусора с малой паузой
- JEP 381: удалите порты Solaris и SPARC
- JEP 383: API доступа к внешней памяти (второй инкубатор)
- JEP 384: Отчеты (второй предварительный просмотр)
- JEP 385: Устаревшая активация RMI для удаления
JEP 360 Запечатанные классы добавляют запечатанные классы и интерфейсы, которые ограничивают то, какие другие классы или интерфейсы могут расширять или реализовывать их. Только те классы, которые указаны в permits
предложение может расширять класс или интерфейс.
package com.example.geometry;public abstract sealed class Shape permits Circle, Rectangle, Square {...}
Вместе с записями запечатанные классы являются типами сумм . Они хорошо работают с другими новыми функциями, такими как записи, выражения переключения и сопоставление с образцом, например, экземпляр. Все они являются частью системы «Сопоставление шаблонов в Java», впервые обсуждавшейся Гэвином Бирманом и Брайаном Гетцем в сентябре 2018 года. [330]
Обновления Java 15
[ редактировать ]Ява ЮВ 16
[ редактировать ]Выпущенный | 16 марта 2021 г. |
---|---|
№ JEP p | 17 |
Дополнение(я) | |
Примечательный | Порт Windows/AArch64, jpackager, сопоставление шаблонов для экземпляра , записи |
Предварительный просмотр | Закрытые классы |
Инкубация | Внешний компоновщик , доступ к внешней памяти |
Поддержка прекращена | |
Общественный | сентябрь 2021 г. |
JDK 16 был выпущен 16 марта 2021 года. В Java 16 удалены параметры предварительной компиляции (и Graal JIT ). [336] Сама реализация Java была и до сих пор пишется на C++ , тогда как, начиная с Java 16, более поздний C++14 (но все еще не, например, C++17 или C++20 разрешен ). Код также был перенесен на GitHub , отказавшись от Mercurial в качестве системы контроля версий .
- JEP 338: Векторный API (инкубатор)
- JEP 347: включить возможности языка C++14
- JEP 357: переход с Mercurial на Git
- JEP 369: миграция на GitHub
- JEP 376: ZGC: параллельная обработка стека потоков
- JEP 380: Каналы сокетов домена Unix
- JEP 386: Порт Alpine Linux – еще нестабилен
- JEP 387: Эластичное метапространство
- JEP 388: порт Windows/AArch64
- JEP 389: API внешнего компоновщика (инкубатор)
- JEP 390: Предупреждения для классов, основанных на значениях
- JEP 392: Инструменты для упаковки
- JEP 393: API доступа к внешней памяти (третий инкубатор)
- JEP 394: Сопоставление с образцом для экземпляра
- JEP 395: Записи
- JEP 396: строгая инкапсуляция внутренних компонентов JDK по умолчанию
- JEP 397: Запечатанные классы (вторая предварительная версия)
Обновления Java 16
[ редактировать ]Ява ЮВ 17
[ редактировать ]LTS- версия | |
Выпущенный | 14 сентября 2021 г. |
---|---|
№ JEP p | 14 |
Дополнение(я) | |
Примечательный | Порт macOS /AArch64, запечатанные классы |
Предварительный просмотр | переключения Сопоставление шаблонов |
Инкубация | Векторный API, API внешних функций и памяти |
Удаление(я) | |
Примечательный | Компилятор AOT , активация RMI , strictfp ключевое слово устарело (JEP 306) |
JDK 17 был выпущен в сентябре 2021 года. [342] Java 17 — это второй выпуск с долгосрочной поддержкой (LTS) с момента перехода на новый шестимесячный период выпуска (первым был Java 11).
- JEP 306: восстановить всегда строгую семантику с плавающей запятой
- JEP 356: Расширенные генераторы псевдослучайных чисел
- JEP 382: новый конвейер рендеринга macOS
- JEP 391: порт macOS/AArch64
- JEP 398: объявить устаревшим API апплета для удаления
- JEP 403: строгая инкапсуляция внутренних компонентов JDK
- JEP 406: Сопоставление шаблонов для переключателя (предварительная версия)
- JEP 407: удалить активацию RMI
- JEP 409: Запечатанные классы
- JEP 410: удаление экспериментального AOT и JIT-компилятора
- JEP 411: объявить устаревшим диспетчер безопасности для удаления
- JEP 412: API внешних функций и памяти (инкубатор)
- JEP 414: Vector API (второй инкубатор)
- JEP 415: Контекстно-зависимые фильтры десериализации
JEP 406 расширяет синтаксис сопоставления с образцом, используемый в операциях экземпляра, для переключения операторов и выражений. Он позволяет выбирать случаи на основе типа аргумента, нулевых случаев и уточняющих шаблонов.
Object o = ...;return switch (o) { case null -> "Null"; case String s -> "String %s".formatted(s); case Long l -> "long %d".formatted(l); case Double d -> "double %f".formatted(d); case Integer i && i > 0 // refining patterns -> "positive int %d".formatted(i); case Integer i && i == 0 -> "zero int %d".formatted(i); case Integer i && i < 0 -> "negative int %d".formatted(i); default -> o.toString();};
Обновления Java 17
[ редактировать ]Ява SE 18
[ редактировать ]Выпущенный | 22 марта 2022 г. |
---|---|
№ JEP p | 9 |
Дополнение(я) | |
Примечательный |
|
Предварительный просмотр | Сопоставление шаблонов переключения |
Инкубация |
|
Удаление(я) | |
Примечательный | Устаревшая финализация для удаления |
Поддержка прекращена | |
Общественный | сентябрь 2022 г. |
JDK 18 был выпущен 22 марта 2022 года. [367]
- JEP 400: UTF-8 по умолчанию
- JEP 408: Простой веб-сервер
- JEP 413: фрагменты кода в документации Java API
- JEP 416: переопределить базовое отражение с помощью дескрипторов методов
- JEP 417: Vector API (Третий инкубатор)
- JEP 418: SPI разрешения интернет-адресов
- JEP 419: API внешних функций и памяти (второй инкубатор)
- JEP 420: Сопоставление шаблонов для коммутатора (вторая предварительная версия)
- JEP 421: Устаревшая финализация для удаления
Обновления Java 18
[ редактировать ]Ява SE 19
[ редактировать ]Выпущенный | 20 сентября 2022 г. |
---|---|
№ JEP p | 7 |
Дополнение(я) | |
Предварительный просмотр |
|
Инкубация |
|
Поддержка прекращена | |
Общественный | март 2023 г. |
JDK 19 был выпущен 20 сентября 2022 года. [376]
- JEP 405: Шаблоны записи (предварительная версия)
- JEP 422: Linux/RISC-V Port
- JEP 424: API внешних функций и памяти (предварительная версия)
- JEP 425: виртуальные потоки (предварительная версия)
- JEP 426: Vector API (Четвертый инкубатор)
- JEP 427: Сопоставление шаблонов для переключателя (третья предварительная версия)
- JEP 428: Структурированный параллелизм (инкубатор)
JEP 405 позволяет использовать шаблоны записей, расширяя возможности сопоставления шаблонов операторов экземпляра и выражений переключения, включая шаблоны записей, которые явно ссылаются на компоненты записи.
record Rectangle(int x, int y, int w, int h) {}int area(Object o) { if (o instanceof Rectangle(int x, int y, int w, int h)) { return w * h; } return 0;}
Такие шаблоны могут включать в себя вложенные шаблоны, в которых компоненты записей сами являются записями, что позволяет шаблонам сопоставлять большее количество графов объектов.
Обновления Java 19
[ редактировать ]Ява SE 20
[ редактировать ]Выпущенный | 21 марта 2023 г. |
---|---|
№ JEP p | 7 |
Дополнение(я) | |
Инкубация | Ограниченные значения |
Поддержка прекращена | |
Общественный | сентябрь 2023 г. |
Java 20 была выпущена 21 марта 2023 года. [382] Все JEP были либо инкубаторами, либо предварительными.
- JEP 429: Ограниченные значения (инкубатор)
- JEP 432: Шаблоны записи (второй предварительный просмотр)
- JEP 433: Сопоставление шаблонов для переключателя (четвертая предварительная версия)
- JEP 434: API внешних функций и памяти (вторая предварительная версия)
- JEP 436: виртуальные потоки (второй предварительный просмотр)
- JEP 437: Структурированный параллелизм (второй инкубатор)
- JEP 438: Vector API (Пятый инкубатор)
Обновления Java 20
[ редактировать ]Ява ЮВ 21
[ редактировать ]LTS- версия | |
Выпущенный | 19 сентября 2023 г. |
---|---|
№ JEP p | 15 |
Дополнение(я) | |
Примечательный | Запись шаблонов, сопоставление шаблонов для коммутатора, виртуальные потоки |
Предварительный просмотр | Строковые шаблоны, безымянные классы и основные методы |
Инкубация | Векторный API |
Java 21 была выпущена 19 сентября 2023 года. [388] Существует восемь JEP, которые не находятся в предварительной версии или инкубации, по сравнению с Java 20, в которой были только предварительный просмотр и инкубация JEP. В Java 21 представлены функции, впервые представленные в Java 17 (сопоставление шаблонов для операторов переключения ) и Java 19 (шаблоны записи). версия 32-разрядная Java для Windows на платформе x86 объявлена устаревшей и подлежит удалению.
- JEP 430: Строковые шаблоны (предварительная версия)
- JEP 431: Последовательные коллекции
- JEP 439: Поколение ZGC
- JEP 440: Шаблоны записи
- JEP 441: Сопоставление шаблонов для переключателя
- JEP 442: API внешних функций и памяти (третья предварительная версия)
- JEP 443: Безымянные шаблоны и переменные (предварительная версия)
- JEP 444: Виртуальные потоки
- JEP 445: Безымянные классы и основные методы экземпляра (предварительная версия)
- JEP 446: ограниченные значения (предварительная версия)
- JEP 448: Vector API (Шестой инкубатор)
- JEP 449: запретить удаление 32-разрядного порта x86 для Windows
- JEP 451: приготовьтесь запретить динамическую загрузку агентов
- JEP 452: API механизма инкапсуляции ключей
- JEP 453: Структурированный параллелизм (предварительная версия)
JEP 445, предварительный просмотр безымянных классов, позволяет использовать простой основной класс без шаблонного кода:
void main() { System.out.println("Hello, World!");}
вместо :
public class HelloWorld { public static void main(String[] args) { System.out.println("Hello, World!"); }}
Обновления Java 21
[ редактировать ]Ява ЮВ 22
[ редактировать ]Выпущенный | 19 марта 2024 г. |
---|---|
№ JEP p | 12 |
Дополнение(я) | |
Примечательный | API внешних функций и памяти, безымянные переменные и шаблоны |
Предварительный просмотр | Структурированный параллелизм, строковые шаблоны |
Инкубация | Векторный API |
Java 22 была выпущена 19 марта 2024 года. [396] [397]
- JEP 423: Закрепление региона для G1
- JEP 447: Заявления перед super(...) (Предварительный просмотр)
- JEP 454: API внешних функций и памяти
- JEP 456: Безымянные переменные и шаблоны
- JEP 457: API файлов классов (предварительная версия)
- JEP 458: Запуск многофайловых программ с исходным кодом
- JEP 459: Строковые шаблоны (вторая предварительная версия)
- JEP 460: Vector API (Седьмой инкубатор)
- JEP 461: Сборщики потоков (предварительная версия)
- JEP 462: Структурированный параллелизм (вторая предварительная версия)
- JEP 463: Неявно объявленные классы и основные методы экземпляра (вторая предварительная версия)
- JEP 464: ограниченные значения (вторая предварительная версия)
По крайней мере один API был удален из Java; т. е. очень редко используемый API (для многопоточности) был удален из Java 22. [3] [398]
Ява ЮВ 23
[ редактировать ]Выпуск | Сентябрь 2024 г. |
---|
По состоянию на январь 2024 г. [update], спецификация Java 23 еще не доработана. Выпуск Java 23 запланирован на сентябрь 2024 года. [399]
Будущие возможности
[ редактировать ]- Проект Валгалла : классы значений , объекты которых не имеют идентичности, но в некоторых случаях могут получить улучшенное расположение памяти (с меньшим количеством косвенности) или полностью оптимизировать их распределение.
- Проект Панама :
- Улучшена совместимость с собственным кодом , позволяющая исходному коду Java вызывать функции и использовать типы данных из других языков, что проще и обеспечивает лучшую производительность, чем сегодня (эта часть Project Panama стабилизируется в Java 22 в соответствии с JEP 454: API внешних функций и памяти ).
- Vector API, портативный и относительно низкоуровневый уровень абстракции для SIMD -программирования. Его стабилизация зависит от проекта «Вальгалла».
- Project Lilliput : Уменьшите размер заголовков объектов Java. Сначала до 64 бит, а затем до 32 бит.
- Уменьшение времени запуска и времени прогрева (времени выхода на пиковую производительность) в режиме JIT:
- Проект CRaC позволяет делать снимки всей JVM (вместе с работающим приложением) и восстанавливать ее с необходимыми изменениями (переоткрытием файлов, сокетов и т. д.).
- Project Leyden , среди прочего, позволит частичную или (в долгосрочной перспективе) полную компиляцию AOT, снижая общий динамизм (путем принятия так называемых «ограничений закрытого мира») и уменьшая накладные расходы на динамическую компиляцию.
- Проект Babylon стремится расширить возможности языка Java на альтернативные модели программирования за счет улучшения его возможностей рефлексивного программирования , называемых отражением кода (т. е. отражением самого кода). Заявленная основная цель — запуск кода Java на графических процессорах, а SQL и другие модели программирования являются второстепенными целями.
Реализации
[ редактировать ]Официально поддерживаемой платформой Java , впервые разработанной в Sun и теперь управляемой Oracle, является Java SE . Релизы основаны на проекте OpenJDK — бесплатном проекте с открытым исходным кодом и открытой моделью разработки . Однако существуют и другие реализации Java — отчасти из-за ранней истории Java как проприетарного программного обеспечения . Напротив, некоторые реализации были созданы, чтобы предложить некоторые преимущества по сравнению со стандартной реализацией, часто в результате какой-либо области академических или корпоративных исследований. Многие дистрибутивы Linux включают сборки OpenJDK в рамках проекта IcedTea , запущенного Red Hat , который обеспечивает более простую среду сборки и интеграции .
Visual J++ и виртуальная машина Microsoft Java были созданы как несовместимые реализации. После иска Sun против Microsoft Microsoft отказалась от него и начала работу над платформой .NET . В 2021 году Microsoft начала распространять совместимую «Сборку Microsoft OpenJDK» сначала для Java 11, а затем и для Java 17. Их сборки поддерживают не только Windows, но также Linux и macOS .
Доступны и другие проприетарные реализации Java, такие как Azul Zing от . Azul предлагает сертифицированные сборки OpenJDK с открытым исходным кодом под названием Zulu.
До выпуска OpenJDK, хотя реализация Sun все еще была проприетарной, был создан проект GNU Classpath, чтобы предоставить бесплатную реализацию платформы Java с открытым исходным кодом. С момента выпуска JDK 7, когда OpenJDK стал официальной эталонной реализацией, первоначальная мотивация проекта GNU Classpath почти полностью исчезла, и его последний выпуск состоялся в 2012 году.
Проект Apache Harmony был запущен незадолго до выпуска OpenJDK. После первоначального выпуска исходного кода Sun проект Harmony продолжил работу над предоставлением реализации под слабой лицензией , в отличие от защитной лицензии, выбранной для OpenJDK. Позже Google разработала Android и выпустила его под нестрогим лицензией. Android вобрал в себя части проекта Harmony, дополненные собственной виртуальной машиной Dalvik от Google и ART . С тех пор Apache Harmony вышел из эксплуатации, а Google заменил свои компоненты Harmony эквивалентными из OpenJDK.
И Jikes , и Jikes RVM представляют собой исследовательские проекты с открытым исходным кодом, разработанные IBM.
Существует несколько других реализаций, которые начинались как проприетарное программное обеспечение, но теперь имеют открытый исходный код. IBM изначально разработала OpenJ9 как проприетарную версию J9. [400] но с тех пор повторно лицензировал проект и передал его в фонд Eclipse Foundation . JRockit — это собственная реализация, приобретенная Oracle и включенная в последующие версии OpenJDK.
Ссылки
[ редактировать ]- ^ Рейнхольд, Марк (6 сентября 2017 г.). «Быстрее продвигать Java вперед» . Проверено 16 сентября 2017 г.
- ^ «Приглашаем всех на борт в шестимесячном поезде по выпуску Java» . theserverside.com. 12 сентября 2017 г. Проверено 16 сентября 2017 г.
- ^ Перейти обратно: а б «Удалить Thread.countStackFrames» . bugs.openjdk.org . Проверено 16 апреля 2024 г.
- ^ Перейти обратно: а б с д и ж г час я дж к «Дорожная карта поддержки Oracle Java SE» . www.oracle.com .
- ^ Смит, Дональд. «Представляем бесплатную лицензию Java» .
- ^ Рейнхольд, Марк (17 августа 2018 г.). «Что означает LTS для OpenJDK?» . Проверено 28 августа 2018 г.
- ^ «Глава 4. Формат файла класса » .
- ^ Перейти обратно: а б с д и ж «Жизненный цикл Red Hat OpenJDK и политика поддержки» . 19 ноября 2023 г.
- ^ «Поддержка Oracle Java SE 6» .
- ^ Перейти обратно: а б с д и ж «Дорожная карта Liberica JDK» .
- ^ Перейти обратно: а б с д и ж «Дорожная карта Azul JDK» .
- ^ «Поддержка Oracle Java SE 7» .
- ^ Перейти обратно: а б с д «Дорожная карта выпуска Eclipse Temurin» .
- ^ Перейти обратно: а б с д «Календарь поддержки Amazon Corretto» .
- ^ «JavaSoft выпускает Java 1.0» (пресс-релиз). Архивировано из оригинала 10 марта 2007 года . Проверено 5 февраля 2008 г.
- ^ Перейти обратно: а б Ортис, К. Энрике; Жигер, Эрик (2001). Профиль мобильного информационного устройства для Java 2 Micro Edition: Руководство разработчика . Джон Уайли и сыновья . ISBN 978-0-471-03465-0 . Проверено 30 мая 2012 г.
- ^ Пресс-релиз версии 1.1 , вс.
- ^ Теннант, Дон (15 марта 1997 г.). «Taligent готовит технологию интернационализации к большому успеху» . Компьютерный мир . ИДГ . Проверено 16 января 2021 г.
- ^ Пресс-релиз версии 1.2 , вс.
- ^ Пресс-релиз версии 1.3 , Sun.
- ^ «Версия 1.3 полный список изменений» . Архивировано из оригинала 7 ноября 2006 года.
- ^ «Как запустить Java на компьютере с Windows 95?» .
- ^ Пресс-релиз версии 1.4 .
- ^ "Версия полный список изменений 1.4" . Архивировано из оригинала 8 января 2007 года.
- ^ Перейти обратно: а б «Платформа Java 2 5.0 и Java для бизнеса 5.0» . Корпорация Оракл . 2010 . Проверено 22 октября 2012 г.
- ^ «Версия 1.5.0 или 5.0?» . Оракул.
- ^ Пресс-релиз версии 1.5 .
- ^ Полный список изменений версии 1.5 .
- ^ «JSR 133, 2.4. Почему эта потребность не удовлетворяется существующими спецификациями?» . Оракул.
- ^ Гетц, Брайан (2006). Параллелизм Java на практике . Аддисон-Уэсли. п. XVIII. ISBN 0-321-34960-1 .
- ^ «Java 5.0 больше не доступна на Java.com» . Java.com. 03.11.2009 . Проверено 30 сентября 2016 г.
- ^ Полузащитник, Натан. «Разное Windows 2 — страница поджаренных технологий Натана» . Проверено 30 сентября 2016 г.
- ^ Янк, Кебин (3 мая 2005 г.). «Java 5 доступна для Mac OS X» . Сайтпойнт . Проверено 30 сентября 2016 г.
- ^ «Версия 1.5.0 или 5.0?» . Oracle.com . Проверено 18 апреля 2016 г.
- ^ Название бренда Java .
- ^ Версия 6 , Веб-заметки Java, Sun.
- ^ Пресс-релиз версии 1.6 .
- ^ Полный список изменений версии 1.6 .
- ^ Java-лобби. Архивировано 13 октября 2008 г. в Wayback Machine .
- ^ «Горячая точка Мустанга» . Архивировано из оригинала 2 января 2007 года.
- ^ Дарси, Джо (3 августа 2008 г.). «Достойная замена» . Проверено 29 июля 2009 г.
- ^ «Установите Java 6 в Mac OS X Leopard | Gephi, программное обеспечение для визуализации графиков с открытым исходным кодом» . Gephi.org . Проверено 30 сентября 2016 г.
- ^ «Дорожная карта поддержки Oracle Java SE» . Корпорация Оракл . 19 сентября 2012 года . Проверено 22 октября 2012 г.
- ^ «Автоматическое обновление и обновление JRE 6 через панель управления Java заменит JRE 6 на JRE 7» . Корпорация Оракл . 19 февраля 2013 года . Проверено 2 марта 2013 г.
- ^ «Java SE Development Kit 6, обновление 43, примечания к выпуску» . Корпорация Оракл . 4 марта 2013 года . Проверено 4 марта 2013 г.
- ^ «Java SE Development Kit 6, обновление 45, примечания к выпуску» . Корпорация Оракл . 4 марта 2013 года . Проверено 4 марта 2013 г.
- ^ «Примечания к выпуску обновления Java SE 6» . www.oracle.com .
- ^ Перейти обратно: а б с «Оракл Java-технологии | Oracle» . www.oracle.com .
- ^ «Нимбус — Java.net» . Архивировано из оригинала 20 августа 2011 года . Проверено 1 февраля 2020 г.
- ^ «Обновление 11 для Sun Java 6 уже доступно, ждем JavaFX» . FindMySoft.com . Проверено 13 ноября 2009 г.
- ^ Скромный, Чарльз (13 мая 2008 г.). «JavaOne: мусор прежде всего» . infoq.com . Проверено 7 сентября 2008 г.
- ^ Трус, Дэни (12 ноября 2008 г.). «Java VM: пробуем новый сборщик мусора для JDK 7» . Архивировано из оригинала 8 декабря 2011 г. Проверено 22 января 2012 г.
- ^ «Точки останова не срабатывают в JDK 1.6.0_14» . Проверено 14 июля 2009 г.
- ^ «Идентификатор ошибки: 6862295 Идентификатор потока JDWP изменяется во время сеанса отладки (что приводит к игнорированию точек останова)» . Проверено 22 июля 2009 г.
- ^ «Информация об обновлении критического исправления Oracle Java SE – июнь 2011 г.» . www.oracle.com .
- ^ «Информация об обновлении критического исправления Oracle Java SE – октябрь 2011 г.» . www.oracle.com .
- ^ «Не удалось установить обновление 32 для Java 6…» MSFN. Архивировано из оригинала 16 августа 2016 г. Проверено 31 июля 2016 г.
- ^ Перейти обратно: а б «Предупреждение безопасности Oracle для CVE-2012-4681» . Корпорация Оракл .
- ^ «Информация об обновлении критического исправления Oracle Java SE – апрель 2013 г.» . www.oracle.com .
- ^ «Зачем мне обновлять Java?» . java.com .
- ^ Перейти обратно: а б «Критическое обновление Oracle Java – июнь 2013 г.» . www.oracle.com .
- ^ Перейти обратно: а б «Обновление критического исправления Oracle – октябрь 2013 г.» . www.oracle.com .
- ^ Перейти обратно: а б «Обновление критического исправления Oracle – апрель 2014 г.» . www.oracle.com .
- ^ «Обновление критического исправления Oracle – июль 2014 г.» . www.oracle.com .
- ^ «Обновление критического исправления Oracle – октябрь 2014 г.» . www.oracle.com .
- ^ «Справочная реализация Java SE 6» . Корпорация Оракл . Проверено 24 октября 2016 г.
- ^ «Рекомендации по обновлению критических исправлений Oracle – январь 2015 г.» . www.oracle.com .
- ^ «Обновление критического исправления Oracle – апрель 2015 г.» . www.oracle.com .
- ^ «Информация об обновлении критических исправлений Oracle – июль 2015 г.» . Проверено 15 июля 2015 г.
- ^ «Рекомендации по обновлению критических исправлений Oracle – октябрь 2015 г.» . Проверено 20 октября 2015 г.
- ^ «Рекомендации по обновлению критических исправлений Oracle – январь 2016 г.» . Проверено 20 января 2016 г.
- ^ Перейти обратно: а б «Предупреждение безопасности Oracle для CVE-2016-0603» . Проверено 8 февраля 2016 г.
- ^ «Обновление критического исправления Oracle CVSS V2 — матрицы рисков — апрель 2016 г.» . Проверено 21 апреля 2016 г.
- ^ Перейти обратно: а б «Информация об обновлении критических исправлений Oracle – июль 2016 г.» . Проверено 19 июля 2016 г.
- ^ Перейти обратно: а б «Рекомендации по обновлению критических исправлений Oracle – октябрь 2016 г.» . Проверено 18 октября 2016 г.
- ^ Перейти обратно: а б «Рекомендации по обновлению критических исправлений Oracle – январь 2017 г.» . Проверено 17 января 2017 г.
- ^ «Информация об обновлении критических исправлений Oracle – апрель 2017 г.» . Проверено 18 апреля 2017 г.
- ^ Перейти обратно: а б «Информация об обновлении критических исправлений Oracle – июль 2017 г.» . Проверено 18 июля 2017 г.
- ^ Перейти обратно: а б «Информация об обновлении критических исправлений Oracle – октябрь 2017 г.» . Проверено 20 октября 2017 г.
- ^ Перейти обратно: а б «Информация об обновлении критических исправлений Oracle – январь 2018 г.» . Проверено 20 октября 2017 г.
- ^ Перейти обратно: а б «Информация об обновлении критических исправлений Oracle – апрель 2018 г.» . Проверено 17 апреля 2018 г.
- ^ Перейти обратно: а б «Информация об обновлении критических исправлений Oracle – июль 2018 г.» . Проверено 17 июля 2018 г.
- ^ Перейти обратно: а б «Информация об обновлении критических исправлений Oracle – октябрь 2018 г.» . Проверено 18 октября 2018 г.
- ^ JDK7. Архивировано 15 декабря 2016 г. в Wayback Machine , вс.
- ^ «Представляем веб-трансляцию Java 7: продвижение Java вперед» . Корпорация Оракл . 7 июля 2011 года . Проверено 30 мая 2012 г.
- ^ Перейти обратно: а б «ДжДК 7» . openjdk.java.net .
- ^ «7 этапов JDK» . OpenJDK . Корпорация Оракл . Проверено 30 мая 2012 г.
- ^ Миллер, Алекс. «Ява 7» . Проверено 5 февраля 2024 г.
- ^ «JSR 292: Поддержка динамически типизированных языков на платформе Java» . Проверено 25 августа 2013 г.
- ^ «Сжатые ошибки в JVM Hotspot» . OpenJDK . Проверено 1 августа 2012 г.
- ^ «Параметры виртуальной машины Java HotSpot» . Оракул . Проверено 11 апреля 2013 г.
- ^ «Усовершенствования языка программирования Java» . Скачать.oracle.com . Проверено 15 января 2013 г.
- ^ «Строки в операторах переключения» . Скачать.oracle.com . Проверено 15 января 2013 г.
- ^ «Заявление о попытке с ресурсами» . Скачать.oracle.com . Проверено 15 января 2013 г.
- ^ «Выведение типа для создания универсального экземпляра» . Скачать.oracle.com . Проверено 15 января 2013 г.
- ^ «Улучшенные предупреждения компилятора при использовании непередаваемых формальных параметров с методами Varargs» . Скачать.oracle.com . Проверено 15 января 2013 г.
- ^ «Двоичные литералы» . Скачать.oracle.com . Проверено 15 января 2013 г.
- ^ «Подчеркивания в числовых литералах» . Скачать.oracle.com . Проверено 15 января 2013 г.
- ^ «Перехват нескольких типов исключений и повторное создание исключений с улучшенной проверкой типов» . Скачать.oracle.com . Проверено 15 января 2013 г.
- ^ «Параллелизм JSR-166» . Проверено 16 апреля 2010 г.
- ^ «Файловый ввод-вывод (с поддержкой NIO.2)» . Java.sun.com. 14 марта 2008 г. Проверено 15 января 2013 г.
- ^ «Код ввода-вывода устаревшего файла» . Java.sun.com. 28 февраля 2012 г. Проверено 15 января 2013 г.
- ^ «Функции JDK 7» . OpenJDK. 28 июля 2011 г. Проверено 15 марта 2013 г.
- ^ «Знакомство с наборами правил развертывания» . Оракул. 21 августа 2013 г. Проверено 22 января 2019 г.
- ^ «Ключевой доклад JavaOne 2011» . Оракул. Архивировано из оригинала 26 октября 2011 г.
- ^ Перейти обратно: а б «Проект Головоломка» . OpenJDK.
«Системные требования к модулю Java — ПРОЕКТ 12» . Оракул.
Крил, Пол (18 июля 2012 г.). «Проект Jigsaw отложен до Java 9» . Инфомир . Проверено 15 июля 2020 г. - ^ «Автообновление Java 7 и Java 6» . Оракул.
- ^ В таблице критических обновлений исправлений показаны четыре даты в году.
- ^ «Конец общедоступных обновлений Java 7» .
После апреля 2015 года Oracle больше не будет публиковать обновления Java SE 7 на своих общедоступных сайтах загрузки. Существующие загрузки Java SE 7, уже опубликованные по состоянию на апрель 2015 г., останутся доступными в архиве Java в сети Oracle Technology Network. Разработчикам и конечным пользователям рекомендуется обновиться до более поздних версий Java SE, которые остаются доступными для общедоступной загрузки, чтобы продолжать получать общедоступные обновления и улучшения безопасности. [..] Июль 2015 г.: Обновления для Java 7 больше не доступны для общественности. Oracle предлагает обновления для Java 7 только для клиентов, которые приобрели поддержку Java или имеют продукты Oracle, требующие Java 7.
- ^ «Дорожная карта поддержки Oracle Java SE» . Корпорация Оракл. 19 декабря 2014 г. Проверено 7 января 2015 г.
- ^ «Примечания к выпуску JDK 7» . www.oracle.com .
- ^ «Информация об обновлении критического исправления Oracle Java SE – февраль 2012 г.» . www.oracle.com .
- ^ «Информация об обновлении критического исправления Oracle Java SE – июнь 2012 г.» . www.oracle.com .
- ^ «Выпущено обновление 6 для Java SE 7» . Архивировано из оригинала 27 октября 2012 года.
- ^ «Информация об обновлении критического исправления Oracle Java SE – октябрь 2012 г.» . www.oracle.com .
- ^ «Предупреждение безопасности Oracle для CVE-2013-0422» . Корпорация Оракл .
- ^ «Информация об обновлении критического исправления Oracle Java SE – февраль 2013 г.» . www.oracle.com .
- ^ «Oracle выпускает исправления для 40 дыр в Java – The H Security: новости и возможности» . www.h-online.com .
- ^ «Пакет разработки Java SE 7, обновление 40 исправлений ошибок» . www.oracle.com .
- ^ «Выпущен Oracle JDK 7u40 — функции безопасности, фиксированный ARM, Java Mission Control и многое другое» . Архивировано из оригинала 2 октября 2013 года.
- ^ Oracle выпустит исправления для Java и других продуктов во вторник , ZDNet ,
- ^ «Обновление критического исправления Oracle – январь 2014 г.» . www.oracle.com .
- ^ «Пакет разработки Java SE 7, обновление 55 исправлений ошибок» . www.oracle.com .
- ^ «Примечания к выпуску Java Mission Control 5.3» . www.oracle.com .
- ^ «Обновление пакета разработки Java SE 7, 60 исправлений ошибок» . www.oracle.com .
- ^ Перейти обратно: а б «Описание выпусков Java CPU и PSU» . www.oracle.com .
- ^ «Информация об обновлении критических исправлений Oracle – июль 2015 г.» . www.oracle.com .
- ^ «Рекомендации по обновлению критических исправлений Oracle – октябрь 2015 г.» . www.oracle.com .
- ^ «Обновление критического исправления Oracle – январь 2016 г.» . www.oracle.com . Проверено 20 января 2016 г.
- ^ «Комплект разработки Java SE 7, обновление 99» . Проверено 23 марта 2016 г.
- ^ «Рекомендации по обновлению критических исправлений Oracle – апрель 2016 г.» . Проверено 18 апреля 2016 г.
- ^ «Информация об обновлении критических исправлений Oracle – апрель 2017 г.» . Проверено 18 апреля 2017 г.
- ^ «Информация об обновлении критических исправлений Oracle – январь 2019 г.» . Проверено 18 апреля 2019 г.
- ^ «Информация об обновлении критических исправлений Oracle – апрель 2019 г.» . Проверено 18 апреля 2019 г.
- ^ «Информация об обновлении критических исправлений Oracle – июль 2019 г.» . Проверено 7 января 2020 г.
- ^ «Информация об обновлении критических исправлений Oracle – октябрь 2019 г.» . Проверено 7 января 2020 г.
- ^ «Информация об обновлении критических исправлений Oracle – январь 2020 г.» . Проверено 22 апреля 2021 г.
- ^ «Информация об обновлении критических исправлений Oracle – апрель 2020 г.» . Проверено 22 апреля 2021 г.
- ^ «Информация об обновлении критических исправлений Oracle – июль 2020 г.» . Проверено 22 апреля 2021 г.
- ^ «Информация об обновлении критических исправлений Oracle – октябрь 2020 г.» . Проверено 22 апреля 2021 г.
- ^ «Информация об обновлении критических исправлений Oracle – январь 2021 г.» . Проверено 22 апреля 2021 г.
- ^ «Информация об обновлении критического исправления Oracle – апрель 2021 г.» . Проверено 22 апреля 2021 г.
- ^ «Примечания к выпуску обновлений JDK 7 и JDK 7» . Проверено 25 января 2022 г.
- ^ «Примечания к выпуску обновлений JDK 7 и JDK 7» . Проверено 25 января 2022 г.
- ^ «Примечания к выпуску обновлений JDK 7 и JDK 7» . Проверено 25 января 2022 г.
- ^ «Предлагаемое новое расписание для Java 8» . 18 апреля 2013 г. Проверено 19 апреля 2013 г.
- ^ «ДжДК 8» . OpenJDK. 18 апреля 2013 г. Проверено 28 января 2014 г.
- ^ «Функции JDK 8» . OpenJDK. 28 января 2014 г. Проверено 28 января 2014 г.
- ^ «ДжСР 337» . Проверено 30 января 2014 г.
- ^ «Функции Java 7» . Сан Микросистемс. 09 февраля 2010 г. Проверено 16 апреля 2010 г.
- ^ Перейти обратно: а б «Эволюция интерфейса с помощью методов виртуального расширения» (PDF) . Брайан Гетц. 20 июля 2011 г. Проверено 27 марта 2014 г.
- ^ «Лямбда-выражения для языка программирования Java» . Брайан Гетц. 23 октября 2012 г. Проверено 27 марта 2014 г.
- ^ «Учебники по Java: методы по умолчанию» . Оракул. Архивировано из оригинала 23 мая 2017 г. Проверено 27 марта 2014 г.
- ^ Гафтер, Нил (18 августа 2006 г.). «Замыкания для Java» . Проверено 9 марта 2008 г.
- ^ Гослинг, Джеймс (31 января 2008 г.). «Замыкания» . Архивировано из оригинала 22 июля 2011 г. Проверено 9 марта 2008 г.
- ^ Рейнхольд, Марк (28 ноября 2009 г.). «Замыкания для Java» . Проверено 24 ноября 2009 г.
- ^ Дарси, Джо. «API беззнаковых целочисленных арифметических операций теперь в JDK 8» . blogs.oracle.com .
- ^ «Сертифицированные системные конфигурации Oracle JDK 8 и JRE 8» . Корпорация Оракл . Проверено 15 апреля 2014 г.
- ^ Шталь, Хенрик (11 июля 2014 г.). «Обновлено: будущее Java в Windows XP» . Корпорация Оракл . Архивировано из оригинала 11 ноября 2014 г. Проверено 11 ноября 2014 г.
JDK 8 не поддерживается в Windows XP. В ранних версиях JDK 8 были известны проблемы с установщиком в Windows XP, из-за которых его невозможно было установить без вмешательства вручную. Эта проблема была решена в обновлении 25 JDK 8. Важным моментом здесь является то, что мы больше не можем предоставлять полные гарантии для Java в Windows XP, поскольку Microsoft больше не обновляет эту ОС. Мы настоятельно рекомендуем пользователям перейти на более новую версию Windows, которая по-прежнему поддерживается Microsoft, чтобы обеспечить стабильную и безопасную среду.
- ^ Вилдт, Тори (27 октября 2014 г.). «Java SE 8 на Java.com» . blog.oracle.com . Архивировано из оригинала 29 ноября 2014 года . Проверено 24 ноября 2014 г.
- ^ «Дорожная карта поддержки Oracle Java SE» . Проверено 17 февраля 2021 г.
- ^ «Комплект разработки Java SE 8, обновление 5 (JDK 8u5)» . oracle.com . Проверено 28 апреля 2014 г.
- ^ «Комплект разработки Java SE 8, обновление 11 (JDK 8u11)» . oracle.com . Проверено 16 июля 2014 г.
- ^ «18 исправлений ошибок безопасности» . oracle.com . Проверено 16 июля 2014 г.
- ^ «Комплект разработки Java SE 8, обновление 20 (JDK 8u20)» . oracle.com . Проверено 27 августа 2014 г.
- ^ «Пакет разработки Java SE 8, обновление 20 исправлений ошибок» . www.oracle.com .
- ^ «Комплект разработки Java SE 8, обновление 25 (JDK 8u25)» . oracle.com . Проверено 14 октября 2014 г.
- ^ «Комплект разработки Java SE 8, обновление 31 (JDK 8u31)» . oracle.com . Проверено 21 января 2015 г.
- ^ «Комплект разработки Java SE 8, обновление 40 (JDK 8u40)» . oracle.com . Проверено 4 марта 2015 г.
- ^ «Пакет разработки Java SE 8, обновление 40 исправлений ошибок» . www.oracle.com .
- ^ «Комплект разработки Java SE 8, обновление 45 (JDK 8u45)» . oracle.com . Проверено 15 апреля 2015 г.
- ^ «Комплект разработки Java SE 8, обновление 51 (JDK 8u51)» . oracle.com . Проверено 14 июля 2015 г.
- ^ «Комплект разработки Java SE 8, обновление 60 (JDK 8u60)» . oracle.com . Проверено 18 августа 2015 г.
- ^ «Java SE Development Kit 8, обновление 60, исправления ошибок» . www.oracle.com .
- ^ «Комплект разработки Java SE 8, обновление 65 (JDK 8u65)» . oracle.com . Проверено 20 октября 2015 г.
- ^ «Java SE Development Kit 8, обновление 66, примечания к выпуску» . oracle.com . Проверено 22 октября 2015 г.
- ^ «Комплект разработки Java SE 8, обновление 71, примечания к выпуску» . oracle.com . Проверено 20 января 2015 г.
- ^ «Обновление 71 пакета разработки Java SE 8, исправление ошибок» . oracle.com . Проверено 20 января 2015 г.
- ^ «Комплект разработки Java SE 8, обновление 72, примечания к выпуску» . oracle.com .
- ^ «Комплект разработки Java SE 8, обновление 73, примечания к выпуску» . oracle.com . Проверено 6 февраля 2016 г.
- ^ «Комплект разработки Java SE 8, обновление 74, примечания к выпуску» . oracle.com . Проверено 6 февраля 2016 г.
- ^ «Комплект разработки Java SE 8, обновление 77, примечания к выпуску» . oracle.com . Проверено 23 марта 2016 г.
- ^ «Комплект разработки Java SE 8, обновление 91, примечания к выпуску» . oracle.com . Проверено 23 марта 2016 г.
- ^ «Комплект разработки Java SE 8, обновление 92, примечания к выпуску» . Проверено 23 марта 2016 г.
- ^ «Комплект разработки Java SE 8, примечания к выпуску обновления 101» . Проверено 19 июля 2016 г.
- ^ «Комплект разработки Java SE 8, обновление 102, примечания к выпуску» . Проверено 19 июля 2016 г.
- ^ «Комплект разработки Java SE 8, обновление 111, примечания к выпуску» . Проверено 19 октября 2016 г.
- ^ «Комплект разработки Java SE 8, обновление 112, примечания к выпуску» . Проверено 19 октября 2016 г.
- ^ «Комплект разработки Java SE 8, обновление 121, примечания к выпуску» . Проверено 17 января 2016 г.
- ^ «Комплект разработки Java SE 8, обновление 131, примечания к выпуску» . www.oracle.com . Проверено 18 апреля 2017 г.
- ^ «Комплект разработки Java SE 8, обновление 141, примечания к выпуску» . www.oracle.com . Проверено 18 июля 2017 г.
- ^ «Комплект разработки Java SE 8, обновление 144, примечания к выпуску» . www.oracle.com . Проверено 26 июля 2017 г.
- ^ «Комплект разработки Java SE 8, обновление 151, примечания к выпуску» . www.oracle.com . Проверено 19 октября 2017 г.
- ^ «Комплект разработки Java SE 8, обновление 152, примечания к выпуску» . www.oracle.com . Проверено 19 октября 2017 г.
- ^ «Комплект разработки Java SE 8, обновление 161, примечания к выпуску» . www.oracle.com . Проверено 18 января 2018 г.
- ^ «Комплект разработки Java SE 8, обновление 162, примечания к выпуску» . www.oracle.com . Проверено 16 января 2018 г.
- ^ «Комплект разработки Java SE 8, обновление 171, примечания к выпуску» . www.oracle.com . Проверено 17 апреля 2018 г.
- ^ «Комплект разработки Java SE 8, обновление 172, примечания к выпуску» . www.oracle.com . Проверено 17 апреля 2018 г.
- ^ «Комплект разработки Java SE 8, обновление 181, примечания к выпуску» . www.oracle.com . Проверено 20 июля 2018 г.
- ^ «Комплект разработки Java SE 8, обновление 191, примечания к выпуску» . www.oracle.com . Проверено 16 октября 2018 г.
- ^ «Комплект разработки Java SE 8, обновление 192, примечания к выпуску» . www.oracle.com . Проверено 16 октября 2018 г.
- ^ «Комплект разработки Java SE 8, примечания к выпуску обновления 201» . www.oracle.com . Проверено 16 января 2019 г.
- ^ «Комплект разработки Java SE 8, примечания к выпуску обновления 202» . www.oracle.com . Проверено 16 января 2019 г.
- ^ «Комплект разработки Java SE 8, обновление 211, примечания к выпуску» . www.oracle.com . Проверено 16 апреля 2019 г.
- ^ Перейти обратно: а б «Комплект разработки Java SE 8, обновление 212, примечания к выпуску» . www.oracle.com . Проверено 16 апреля 2019 г.
- ^ «Комплект разработки Java SE 8, обновление 221, примечания к выпуску» . www.oracle.com . Проверено 30 июля 2019 г.
- ^ «Комплект разработки Java SE 8, обновление 231, примечания к выпуску» . www.oracle.com . Проверено 16 октября 2019 г.
- ^ «Комплект разработки Java SE 8, обновление 241, примечания к выпуску» . www.oracle.com . Проверено 18 января 2020 г.
- ^ «Комплект разработки Java SE 8, обновление 251, примечания к выпуску» . www.oracle.com . Проверено 14 апреля 2020 г.
- ^ «Комплект разработки Java SE 8, обновление 261, примечания к выпуску» . www.oracle.com . Проверено 19 апреля 2022 г.
- ^ «Исправления ошибок JDK 8u261» . www.oracle.com . Проверено 19 апреля 2022 г.
- ^ «Комплект разработки Java SE 8, обновление 271, примечания к выпуску» . www.oracle.com . Проверено 19 апреля 2022 г.
- ^ «Исправления ошибок JDK 8u271» . www.oracle.com . Проверено 19 апреля 2022 г.
- ^ «Комплект разработки Java SE 8, обновление 281, примечания к выпуску» . www.oracle.com . Проверено 19 апреля 2022 г.
- ^ «Исправления ошибок JDK 8u281» . www.oracle.com . Проверено 19 апреля 2022 г.
- ^ «Комплект разработки Java SE 8, обновление 291, примечания к выпуску» . www.oracle.com . Проверено 19 апреля 2022 г.
- ^ «Исправления ошибок JDK 8u291» . www.oracle.com . Проверено 19 апреля 2022 г.
- ^ «Комплект разработки Java SE 8, примечания к выпуску обновления 301» . www.oracle.com . Проверено 19 апреля 2022 г.
- ^ «Исправления ошибок JDK 8u301» . www.oracle.com . Проверено 19 апреля 2022 г.
- ^ «Комплект разработки Java SE 8, обновление 311, примечания к выпуску» . www.oracle.com . Проверено 19 апреля 2022 г.
- ^ «Исправления ошибок JDK 8u311» . www.oracle.com . Проверено 19 апреля 2022 г.
- ^ «Комплект разработки Java SE 8, примечания к выпуску обновления 321» . www.oracle.com . Проверено 19 апреля 2022 г.
- ^ «Комплект разработки Java SE 8, обновление 321, исправление ошибок» . www.oracle.com . Проверено 19 апреля 2022 г.
- ^ «Комплект разработки Java SE 8, обновление 331, примечания к выпуску» . www.oracle.com . Проверено 19 апреля 2022 г.
- ^ «Комплект разработки Java SE 8, обновление 331, исправления ошибок» . www.oracle.com . Проверено 19 апреля 2022 г.
- ^ «Комплект разработки Java SE 8, обновление 333, примечания к выпуску» . www.oracle.com . Проверено 2 мая 2022 г.
- ^ «Комплект разработки Java SE 8, обновление 333, исправления ошибок» . www.oracle.com . Проверено 2 мая 2022 г.
- ^ «Комплект разработки Java SE 8, обновление 341, примечания к выпуску» . www.oracle.com . Проверено 30 июля 2022 г.
- ^ «Комплект разработки Java SE 8, обновление 341, исправление ошибок» . www.oracle.com . Проверено 30 июля 2022 г.
- ^ «Комплект разработки Java SE 8, обновление 351, примечания к выпуску» . www.oracle.com . Проверено 18 октября 2022 г.
- ^ «Комплект разработки Java SE 8, обновление 351, исправления ошибок» . www.oracle.com . Проверено 18 октября 2022 г.
- ^ «Комплект разработки Java SE 8, примечания к выпуску обновления 361» . www.oracle.com . Проверено 24 марта 2023 г.
- ^ «Комплект разработки Java SE 8, обновление 371, примечания к выпуску» . www.oracle.com .
- ^ «Комплект разработки Java SE 8, обновление 381, примечания к выпуску» . www.oracle.com . Проверено 12 сентября 2023 г.
- ^ «Комплект разработки Java SE 8, обновление 391, примечания к выпуску» . www.oracle.com . Проверено 15 ноября 2023 г.
- ^ «Комплект разработки Java SE 8, примечания к выпуску обновления 401» . www.oracle.com .
- ^ Перейти обратно: а б «Комплект разработки Java SE 8, обновление 411, примечания к выпуску» . www.oracle.com .
- ^ «ДжДК 9» . Проверено 16 июня 2017 г.
- ^ «Спецификация модульности Java, против которой выступает Red Hat, IBM отклонена» . Инфомир . 09.05.2017 . Проверено 16 июня 2017 г.
- ^ Чиргвин, Ричард (2 июля 2017 г.). «Выпуск Java 9 возвращается в нужное русло, сообщество голосует «за» » . theregister.co.uk . Проверено 29 июля 2017 г.
- ^ «Платформа Java, стандартная версия: Руководство по миграции на Oracle JDK 9» . docs.oracle.com . Проверено 15 мая 2018 г.
- ^ «OpenJDK: Проект Кулла» .
- ^ Леа, Дуг (15 января 2015 г.). «[concurrency-interest] jdk9 Классы-кандидаты Flow и Submission Publisher» . Архивировано из оригинала 20 января 2015 года . Проверено 24 декабря 2015 г.
- ^ «Поток (Java SE 9 и JDK 9)» . docs.oracle.com .
- ^ Reactive Streams выпускает первую стабильную версию для JVM
- ^ «JDK 9: первый выпуск-кандидат» . 09.08.2017 . Проверено 21 августа 2017 г.
- ^ «Java 9: дата выпуска и новые возможности» . techworld.com. 21 июля 2017 г. Архивировано из оригинала 07.12.2017 . Проверено 16 сентября 2017 г.
«ДжДК 9» . Корпорация Оракл . Проверено 16 сентября 2017 г. - ^ «Отметьте свой календарь: у Java 9 наконец-то появилась дата выпуска» . 07.05.2015.
- ^ «Новый сборщик мусора в Java 9: что меняется? Что остается?» . 26 июня 2015 г.
- ^ «JavaOne: JavaFX 2, Java для iOS» .
- ^ «Дата выпуска Java 9 — март 2017 г.» . 05.01.2016.
- ^ «Выпуск JDK 9 отложен еще на четыре месяца» . Регистр . Проверено 14 октября 2016 г.
- ^ «Примечания к выпуску JDK 9» . oracle.com. 21 сентября 2017 г.
- ^ «Примечания к выпуску JDK 9.0.1» . oracle.com. 17 октября 2017 г.
- ^ «Исправления ошибок JDK 9.0.1» . oracle.com . 17 октября 2017 г.
- ^ «Примечания к выпуску JDK 9.0.4» . oracle.com. 16 января 2018 г.
- ^ «Исправления ошибок JDK 9.0.4» . oracle.com . 16 января 2018 г.
- ^ OpenJDK. «ДжДК 10» .
- ^ «Примечания к выпуску JDK 10» . oracle.com. 20 марта 2018 г.
- ^ «Примечания к выпуску JDK 10.0.1» . oracle.com. 17 апреля 2018 г.
- ^ «Исправления ошибок JDK 10.0.1» . oracle.com. 17 апреля 2018 г.
- ^ «Примечания к выпуску JDK 10.0.2» . oracle.com. 17 июля 2018 г.
- ^ «Исправления ошибок JDK 10.0.2» . oracle.com. 17 июля 2018 г.
- ^ OpenJDK. «ДжДК 11» .
- ^ «Руководство по миграции Oracle JDK» . Справочный центр Oracle . Проверено 27 сентября 2018 г.
- ^ «ДжДК 11» . oracle.com. 25 сентября 2018 г.
- ^ «Примечания к выпуску JDK 11.0.1» . oracle.com. 16.10.2018.
- ^ «Исправления ошибок JDK 11.0.1» . oracle.com . 16.10.2018.
- ^ «Примечания к выпуску JDK 11.0.2» . oracle.com. 15 января 2019 г.
- ^ «Исправления ошибок JDK 11.0.2» . oracle.com . 15 января 2019 г.
- ^ «Примечания к выпуску JDK 11.0.3» . oracle.com. 16 апреля 2019 г.
- ^ «Исправления ошибок JDK 11.0.3» . oracle.com . 16 апреля 2019 г.
- ^ «Примечания к выпуску JDK 11.0.4» . oracle.com. 16 июля 2019 г.
- ^ «Исправления ошибок JDK 11.0.4» . oracle.com . 16 июля 2019 г.
- ^ «Примечания к выпуску JDK 11.0.5» . oracle.com. 15.10.2019.
- ^ «Исправления ошибок JDK 11.0.5» . oracle.com . 15.10.2019.
- ^ «Примечания к выпуску JDK 11.0.6» . oracle.com. 14 января 2020 г.
- ^ «Исправления ошибок JDK 11.0.6» . oracle.com . 14 января 2020 г.
- ^ «Примечания к выпуску JDK 11.0.7» . oracle.com. 14 апреля 2020 г.
- ^ «Исправления ошибок JDK 11.0.7» . oracle.com . 14 апреля 2020 г.
- ^ «Примечания к выпуску JDK 11.0.8» . oracle.com . 14 июля 2020 г.
- ^ «Исправления ошибок JDK 11.0.8» . oracle.com . 14 июля 2020 г.
- ^ «Примечания к выпуску JDK 11.0.9» . oracle.com . 20.10.2020.
- ^ «Исправления ошибок JDK 11.0.9» . oracle.com . 20.10.2020.
- ^ «Примечания к выпуску JDK 11.0.10» . oracle.com . 19 января 2021 г.
- ^ «Исправления ошибок JDK 11.0.10» . oracle.com . 19 января 2021 г.
- ^ «Примечания к выпуску JDK 11.0.11» . oracle.com . 20 апреля 2021 г.
- ^ «Исправления ошибок JDK 11.0.11» . oracle.com . 20 апреля 2021 г.
- ^ «Примечания к выпуску JDK 11.0.12» . oracle.com . 20 июля 2021 г.
- ^ «Исправления ошибок JDK 11.0.12» . oracle.com . 20 июля 2021 г.
- ^ «Примечания к выпуску JDK 11.0.13» . oracle.com . 2021-10-19.
- ^ «Исправления ошибок JDK 11.0.13» . oracle.com . 2021-10-19.
- ^ «Примечания к выпуску JDK 11.0.14» . oracle.com . 18 января 2022 г.
- ^ «Исправления ошибок JDK 11.0.14» . oracle.com . 18 января 2022 г.
- ^ «Примечания к выпуску JDK 11.0.15» . oracle.com . 19 апреля 2022 г.
- ^ «Исправления ошибок JDK 11.0.15» . oracle.com . 19 апреля 2022 г.
- ^ «Примечания к выпуску JDK 11.0.16» . oracle.com . 19 июля 2022 г.
- ^ «Исправления ошибок JDK 11.0.16» . oracle.com . 19 июля 2022 г.
- ^ «Примечания к выпуску JDK 11.0.16.1» . oracle.com . 18 августа 2022 г.
- ^ «Примечания к выпуску JDK 11.0.17» . oracle.com . 2022-10-19.
- ^ «Исправления ошибок JDK 11.0.17» . oracle.com . 2022-10-19.
- ^ «Примечания к выпуску JDK 11.0.18» . oracle.com . 17 января 2023 г.
- ^ «Исправления ошибок JDK 11.0.18» . oracle.com . 17 января 2023 г.
- ^ «Примечания к выпуску JDK 11.0.19» . oracle.com . 18 апреля 2023 г.
- ^ «Исправления ошибок JDK 11.0.19» . oracle.com . 18 апреля 2023 г.
- ^ «Примечания к выпуску JDK 11.0.20» . oracle.com . 18 июля 2023 г.
- ^ «Исправления ошибок JDK 11.0.20» . oracle.com . 18 июля 2023 г.
- ^ «Примечания к выпуску JDK 11.0.21» . oracle.com . 17 октября 2023 г.
- ^ «Исправления ошибок JDK 11.0.21» . oracle.com . 17 октября 2023 г.
- ^ «Примечания к выпуску JDK 11.0.22» . oracle.com . 16 января 2024 г.
- ^ «Исправления ошибок JDK 11.0.22» . oracle.com . 16 января 2024 г.
- ^ OpenJDK. «12» .
- ^ «Примечания к выпуску JDK 12» . oracle.com. 19 марта 2019 г.
- ^ «Примечания к выпуску JDK 12.0.1» . oracle.com. 16 апреля 2019 г.
- ^ «Исправления ошибок JDK 12.0.1» . oracle.com . 16 апреля 2019 г.
- ^ «Примечания к выпуску JDK 12.0.2» . oracle.com. 16 июля 2019 г.
- ^ Перейти обратно: а б «Дорожная карта поддержки Azul» . Азул | Лучшая производительность Java, превосходная поддержка Java . Проверено 28 июня 2023 г.
- ^ oracle.com, Марк Рейнхолд (17 сентября 2019 г.). «Java 13/JDK 13: общая доступность» .
- ^ «Примечания к выпуску JDK 13» . oracle.com. 17 сентября 2019 г.
- ^ «Примечания к выпуску JDK 13.0.1» . oracle.com. 15.10.2019.
- ^ «Примечания к выпуску JDK 13.0.2» . oracle.com. 14 января 2020 г.
- ^ «Исправления ошибок JDK 13.0.2» . oracle.com . 14 января 2020 г.
- ^ oracle.com, Марк Рейнхолд (17 марта 2020 г.). «Java 14/JDK 14: общая доступность» .
- ^ Эванс, Бен (10 января 2020 г.). «Рекорды приходят на Яву» . Журнал Ява . Оракул . Проверено 10 июля 2021 г.
- ^ «Примечания к выпуску JDK 14» . oracle.com. 17.03.2020.
- ^ «Примечания к выпуску JDK 14.0.1» . oracle.com. 14 апреля 2020 г.
- ^ «Исправления ошибок JDK 14.0.1» . oracle.com . 14 апреля 2020 г.
- ^ «Примечания к выпуску JDK 14.0.2» . oracle.com. 14 июля 2020 г.
- ^ «Исправления ошибок JDK 14.0.2» . oracle.com . 14 июля 2020 г.
- ^ Гэвин Бирман; Брайан Гетц (сентябрь 2018 г.). «Сопоставление с образцом для Java» . openjdk.org . Проверено 18 июня 2024 г.
- ^ «Примечания к выпуску JDK 15» . oracle.com. 15 сентября 2020 г.
- ^ «Примечания к выпуску JDK 15.0.1» . oracle.com. 20.10.2020.
- ^ «Исправления ошибок JDK 15.0.1» . oracle.com . 20.10.2020.
- ^ «Примечания к выпуску JDK 15.0.2» . oracle.com. 19 января 2021 г.
- ^ «Исправления ошибок JDK 15.0.2» . oracle.com . 19 января 2021 г.
- ^ «[JDK-8255616] Удаление экспериментальных функций AOT и Graal JIT — система ошибок Java» . bugs.openjdk.java.net . Проверено 19 февраля 2021 г.
- ^ «Примечания к выпуску JDK 16» . oracle.com. 16 марта 2021 г.
- ^ «Примечания к выпуску JDK 16.0.1» . oracle.com. 20 апреля 2021 г.
- ^ «Исправления ошибок JDK 16.0.1» . oracle.com . 20 апреля 2021 г.
- ^ «Примечания к выпуску JDK 16.0.2» . oracle.com. 20 июля 2021 г.
- ^ «Исправления ошибок JDK 16.0.2» . oracle.com . 20 июля 2021 г.
- ^ «ДжДК 17» . openjdk.java.net . Проверено 17 сентября 2021 г.
- ^ «Примечания к выпуску JDK 17» . oracle.com. 14 сентября 2021 г.
- ^ «Примечания к выпуску JDK 17.0.1» . oracle.com. 2021-10-19.
- ^ «Исправления ошибок JDK 17.0.1» . oracle.com . 2021-10-19.
- ^ «Примечания к выпуску JDK 17.0.2» . oracle.com. 18 января 2022 г.
- ^ «Исправления ошибок JDK 17.0.2» . oracle.com . 18 января 2022 г.
- ^ «Примечания к выпуску JDK 17.0.3» . oracle.com. 19 апреля 2022 г.
- ^ «Исправления ошибок JDK 17.0.3» . oracle.com . 19 апреля 2022 г.
- ^ «Примечания к выпуску JDK 17.0.3.1» . oracle.com. 2 мая 2022 г.
- ^ «Исправления ошибок JDK 17.0.3.1» . oracle.com . 2 мая 2022 г.
- ^ «Примечания к выпуску JDK 17.0.4» . oracle.com. 19 июля 2022 г.
- ^ «Исправления ошибок JDK 17.0.4» . oracle.com . 19 июля 2022 г.
- ^ «Примечания к выпуску JDK 17.0.4.1» . oracle.com. 18 августа 2022 г.
- ^ «Примечания к выпуску JDK 17.0.5» . oracle.com. 18 октября 2022 г.
- ^ «Исправления ошибок JDK 17.0.5» . oracle.com . 18 октября 2022 г.
- ^ «Примечания к выпуску JDK 17.0.6» . oracle.com. 17 января 2023 г.
- ^ «Исправления ошибок JDK 17.0.6» . oracle.com . 17 января 2023 г.
- ^ «Примечания к выпуску JDK 17.0.7» . oracle.com. 18 апреля 2023 г.
- ^ «Исправления ошибок JDK 17.0.7» . oracle.com . 18 апреля 2023 г.
- ^ «Примечания к выпуску JDK 17.0.8» . oracle.com. 18 июля 2023 г.
- ^ «Исправления ошибок JDK 17.0.8» . oracle.com . 18 июля 2023 г.
- ^ «Примечания к выпуску JDK 17.0.9» . oracle.com. 17 октября 2023 г.
- ^ «Исправления ошибок JDK 17.0.9» . oracle.com . 17 октября 2023 г.
- ^ «Примечания к выпуску JDK 17.0.10» . oracle.com . 16 января 2024 г.
- ^ «Исправления ошибок JDK 17.0.10» . oracle.com . 16 января 2024 г.
- ^ «ДжДК 18» . openjdk.org . Проверено 28 июня 2023 г.
- ^ «Примечания к выпуску JDK 18» . oracle.com. 2022-03-22.
- ^ «Примечания к выпуску JDK 18.0.1» . oracle.com. 19 апреля 2022 г.
- ^ «Исправления ошибок JDK 18.0.1» . oracle.com . 19 апреля 2022 г.
- ^ «Примечания к выпуску JDK 18.0.1.1» . oracle.com. 2 мая 2022 г.
- ^ «Исправления ошибок JDK 18.0.1.1» . oracle.com . 2 мая 2022 г.
- ^ «Примечания к выпуску JDK 18.0.2» . oracle.com. 19 июля 2022 г.
- ^ «Исправления ошибок JDK 18.0.2» . oracle.com . 19 июля 2022 г.
- ^ «Примечания к выпуску JDK 18.0.2.1» . oracle.com. 18 августа 2022 г.
- ^ «ДжДК 19» . openjdk.org . Проверено 19 сентября 2022 г.
- ^ «Примечания к выпуску JDK 19» . oracle.com. 20 сентября 2022 г.
- ^ «Примечания к выпуску JDK 19.0.1» . oracle.com. 18 октября 2022 г.
- ^ «Исправления ошибок JDK 19.0.1» . oracle.com . 18 октября 2022 г.
- ^ «Примечания к выпуску JDK 19.0.2» . oracle.com. 17 января 2023 г.
- ^ «Исправления ошибок JDK 19.0.2» . oracle.com . 17 января 2023 г.
- ^ «ДжДК 20» . openjdk.org . Проверено 21 апреля 2023 г.
- ^ «Примечания к выпуску JDK 20» . oracle.com. 21 марта 2023 г.
- ^ «Примечания к выпуску JDK 20.0.1» . oracle.com. 18 апреля 2023 г.
- ^ «Исправления ошибок JDK 20.0.1» . oracle.com . 18 апреля 2023 г.
- ^ «Примечания к выпуску JDK 20.0.2» . oracle.com. 18 июля 2023 г.
- ^ «Исправления ошибок JDK 20.0.2» . oracle.com . 18 июля 2023 г.
- ^ «ДжДК 21» . OpenJDK . Проверено 12 июня 2023 г.
- ^ «Примечания к выпуску JDK 21» . oracle.com. 19 сентября 2023 г.
- ^ «Примечания к выпуску JDK 21.0.1» . oracle.com. 17 октября 2023 г.
- ^ «Исправления ошибок JDK 21.0.1» . oracle.com . 17 октября 2023 г.
- ^ «Примечания к выпуску JDK 21.0.2» . oracle.com . 16 января 2024 г.
- ^ «Исправления ошибок JDK 21.0.2» . oracle.com . 16 января 2024 г.
- ^ «Примечания к выпуску JDK 21.0.3» . oracle.com . 16 апреля 2024 г.
- ^ «Исправления ошибок JDK 21.0.3» . oracle.com . 16 апреля 2024 г.
- ^ «ДжДК 22» . OpenJDK . Проверено 10 апреля 2024 г.
- ^ «Oracle выпускает Java 22» . oracle.com . Проверено 20 марта 2024 г.
- ^ «Java SE 22 (JSR 397)» . cr.openjdk.org . Проверено 16 апреля 2024 г.
- ^ «Платформа Java SE 23 JSR 398» . openjdk.org . Проверено 17 января 2024 г.
- ^ «Загрузки – Обзор» . 18 июля 2016 г.