FOSS Software

Java 17 LTS Released

Share on Facebook Share on Twitter Pinterest LinkedIn Tumblr

Java 17 with Extended Support (LTS) has been released. The previous version with extended support, Java 11, was released in 2018.

The most notable change in this release is that support for sealed classes and interfaces has moved out of the preview stage and is now ready for use.

Sealed types are classes or interfaces that impose constraints on other classes or interfaces that can extend or implement them. To declare a sealed class or interface, use the modifier sealed… The list of subtypes can be listed by declaring a sealed class or interface after the keyword permits… If the subtypes are in the same package or module, the compiler itself can display the list of subtypes and permitscan be omitted in a sealed class or interface declaration.

sealed interface Color permits BiColor, TriColor { }
	
record BiColor(int r, int g, int b) implements Color {}
record TriColor(int r, int g, int b) implements Color {}

Specifications implemented:

  • JEP 306: Restore Always-Strict Floating-Point Semantics
    Floating point operations will now be permanently strict, instead of having both strict floating point semantics (strictfp) and slightly different default floating point semantics.
  • JEP 356: Enhanced Pseudo-Random Number Generators
    New interface created RandomGeneratorand implementations for pseudo-random number generators (PRNGs): SplittableRandomGenerator, JumpableRandomGenerator, LeapableRandomGenerator, ArbitrarilyJumpableRandomGenerator.
  • JEP 382: New macOS Rendering Pipeline
    Added a new rendering pipeline for macOS using the Metal API as an alternative to the existing pipeline using the legacy OpenGL API.
  • JEP 391: macOS/AArch64 Port
    Implemented the execution of Java code based on AArch64 instructions without using Rosetta 2.
  • JEP 398: Deprecate the Applet API for Removal
    Applet API is marked for removal and will be removed in future releases.
  • JEP 403: Strongly Encapsulate JDK Internals
    Completely removed the ability to weaken the strict encapsulation of the internals of the JVM; parameter --illegal-accessthat allowed this in previous versions has been removed.
  • JEP 406: Pattern Matching for switch (Preview)
    Implemented a preview of Pattern Matching for the design switch.
  • JEP 407: Remove RMI Activation
    The RMI activation mechanism has been removed.
  • JEP 409: Sealed Classes
    Sealed classes or interfaces restrict access to their extension or implementation by explicitly specifying the classes / interfaces that are allowed.
  • JEP 410: Remove the Experimental AOT and JIT Compiler
    Removed experimental support for the AOT compiler.
  • JEP 411: Deprecate the Security Manager for Removal
    Security Manager is deprecated and will be removed in future releases along with the Applet API.
  • JEP 412: Foreign Function & Memory API (Incubator)
    Improved two previously created APIs: Foreign-Memory Access API and Foreign Linker API.
  • JEP 414: Vector API (Second Incubator)
    Second preview version where performance and implementation of the Vector API has been improved, including improvements in converting byte vectors to logical arrays from them.
  • JEP 415: Context-Specific Deserialization Filters
    Added a custom filter factory for the entire JVM. These filters are dynamic and context sensitive, as opposed to a single static deserialization filter for the entire JVM. For backward compatibility, if no filter factory is specified, the built-in factory returns a static filter for the entire JVM, if configured.

>>> Details

Kali Linux 2021.3 Available to Download

Write A Comment