The callback is executed either by the thread itself or by the VM thread while keeping the thread in a blocked state. This is an internal JVM feature to improve performance.Ī handshake operation is a callback that is executed for each JavaThread while that thread is in a safepoint state. This will also mean that both Oracle & Open JDK binaries will be functionally the same.Ĭritical security components such as TLS will work by default in OpenJDK builds going forward. In order to promote OpenJDK and make it more appealing to community users, this feature provides a default set of root Certification Authority (CA) certificates in the JDK. Var numbers = List.of(1, 2, 3, 4, 5) // inferred value ArrayListįor (var i = 0 i < numbers.size() i++) Indexes of enhanced for loop or indexes.Limited only to Local Variable with initializer.Local type inference can be used only in the following scenarios: It adds type inference to declarations of local variables with initializers. Local-Variable Type Inference is the biggest new feature in Java 10 for developers. Local-Variable Type Inference (JEP 286).For a hypothetical build 93 of JDK 10.0.1, the build will be 10.0.1+93 18.3 can be read as the Year 2018 & 3rd Month, build 10+46 is 46th build for version 10. The version number format is “10” as there’s no other counter which is other than zero.
Java HotSpot(TM) 64-Bit Server VM 18.3 (build 10+46, mixed mode) Java(TM) SE Runtime Environment 18.3 (build 10+46)
Now, let us take a look at Java launcher which returns the version information: New API’s have been added to get these counter values programmatically. $PATCH: counter will be incremented for an emergency release to fix a critical issue. The April 2018 release is JDK 10.0.1, the July release is JDK 10.0.2, and so forth This is updated one month after the feature release and every 3 months thereafter.
$UPDATE: counter will be incremented for compatible update releases that fix security issues, regressions, and bugs in newer features. This kept for a future revision to the release model. Usually, this will be zero, as there will be no interim release in a six month period. $INTERIM: counter will be incremented for non-feature releases that contain compatible bug fixes and enhancements but no incompatible changes. $FEATURE: counter will be incremented every 6 months and will be based on feature release versions, e.g: JDK 10, JDK 11. However, whether it would be the LTS version of Oracle JDK or the Open JDK is yet to know, partly because there’s a lot going on the cloud space. In my opinion, the LTS version will be the most favored ones by the enterprises. Industry adoption for Java 6 was more than Java 7 and then Industry is gradually moving to Java 8. Large organizations take time to move between the versions they cling on to the version until they can. Open JDK binaries will be released every 6 months, while Oracle JDK binaries will be released every 3 years (LTS version). This is a move towards being more cloud & container friendly, as the open JDK binaries can be distributed as part of a container. Oracle will, however, keep producing their JDK, but only for long term support releases. This is a big relief from earlier days, where the JDK binaries were propriety and licensed by Oracle, which had various restrictions around redistribution. In order to be more developer-friendly, Oracle & Java community now promotes the OpenJDK binaries as primary JDK going forward.