The basic tool you need in order to create apps in Java

Java Development Kit for Mac

Join our mailing list

Stay up to date with latest software releases, news, software discounts, deals and more.

Download Java JDK 16

  -  166.56 MB  -  Freeware

What's new in this version:

New Features and Enhancements:
- JEP 396: Strongly Encapsulate JDK Internals by Default
- JEP 390: Warnings for Value-based Classes
- Add InvocationHandler::invokeDefault Method for Proxy's Default Method Support
- JEP 380: Unix domain sockets
- Day Period Support Added to java.time Formats
- Add Stream.toList() Method
- JEP 338: Vector API (Incubator)
- Improved CompileCommand Flag
- JEP 376: ZGC Concurrent Stack Processing
- Concurrently Uncommit Memory in G1
- JEP 387: Elastic Metaspace
- Signed JAR Support for RSASSA-PSS and EdDSA
- SUN, SunRsaSign, and SunEC Providers Supports SHA-3 Based Signature Algorithms
- jarsigner Preserves POSIX File Permission and symlink Attributes
- Added -trustcacerts and -keystore Options to keytool -printcert and -printcrl Commands
- SunPKCS11 Provider Supports SHA-3 Related Algorithms
- Improve Certificate Chain Handling
- Improve Encoding of TLS Application-Layer Protocol Negotiation (ALPN) Values
- TLS Support for the EdDSA Signature Algorithm
- JEP 397: Sealed Classes (Second Preview)
- JEP 395: Records
- JEP 394: Pattern Matching for instanceof
- JEP 392: Packaging Tool

Removed Features and Options:
- Removal of java.awt.PeerFixer
- Removal of Experimental Features AOT and Graal JIT
- Deprecated Tracing Flags Are Obsolete and Must Be Replaced With Unified Logging Equivalents
- Removed Root Certificates with 1024-bit Keys
- Removal of Legacy Elliptic Curves

Deprecated Features and Options:
- Terminally Deprecated ThreadGroup stop, destroy, isDestroyed, setDaemon and isDaemon
- Parts of the Signal-Chaining API Are Deprecated
- Deprecated the APIs That Represent DNs as Principal or String Objects

Other Notes:
- Line Terminator Definition Changed in
- Enhanced Support of Proxy Class
- Module::getPackages Returns the Set of Package Names in This Module
- Support Supplementary Characters in String Case Insensitive Operations
- Proxy Classes Are Not Open for Reflective Access
- The Default HttpClient Implementation Returns Cancelable Futures
- HttpPrincipal::getName Returned Incorrect Name
- HttpClient.newHttpClient and Might Throw UncheckedIOException
- (fs) NullPointerException Not Thrown When First Argument to Path.of or Paths.get Is null
- Incomplete Support for Unix Domain Sockets in Windows 2019 Server
- US/Pacific-New Zone Name Removed as Part of tzdata2020b
- Argument Index of Zero or Unrepresentable by int Throws IllegalFormatException.
- GZIPOutputStream Sets the GZIP OS Header Field to the Correct Default Value
- Refine ZipOutputStream.putNextEntry() to Recalculate ZipEntry's Compressed Size
- java.util.logging.LogRecord Updated to Support Long Thread IDs
- TreeMap.computeIfAbsent Mishandles Existing Entries Whose Values Are null
- Support for CLDR Version 38
- Added Property to Control LDAP Authentication Mechanisms Allowed to Authenticate Over Clear Connections
- LDAP Channel Binding Support for Java GSS/Kerberos
- Make JVMTI Table Concurrent
- IncompatibleClassChangeError Exceptions Are Thrown For Failing 'final' Checks When Defining a Class
- Object Monitors No Longer Keep Strong References to Their Associated Object
- Added 3 SSL Corporation Root CA Certificates
- Added Entrust Root Certification Authority - G4 certificate
- Upgraded the Default PKCS12 Encryption and MAC Algorithms
- Disable TLS 1.0 and 1.1
- C-Style Array Declarations Are Not Allowed in Record Components
- Annotation Interfaces May Not Be Declared As Local Interfaces
- DocLint Support Moved to jdk.javadoc Module
- Eliminating Duplication in Simple Documentation Comments
- Viewing API Documentation on Small Devices
- API Documentation Links to Platform Documentation
- Improvements for JavaDoc Search

Join our mailing list

Stay up to date with latest software releases, news, software discounts, deals and more.