SlideShare a Scribd company logo
1 of 15
Hello Java 16!
• /**
• * @ presenter Suyash Joshi
• * @ title Principal Cloud Developer Advocate at Oracle
• * @ email suyash@suyashjoshi.com, yash.joshi@oracle.com
• * @ event Global Summit for Java Devs 2021
• * @ twitter @suyashcjoshi @geekle
• * @ date Mar 29, 2021
• */
Java 16 – Continually Innovating
https://blogs.oracle.com/java-platform-group/the-arrival-of-java-16
Features / What’s New ?
338: Vector API (Incubator)
347: Enable C++14 Language Features
357: Migrate from Mercurial to Git
369: Migrate to GitHub
376: ZGC: Concurrent Thread-Stack Processing
380: Unix-Domain Socket Channels
386: Alpine Linux Port
387: Elastic Metaspace
388: Windows/AArch64 Port
389: Foreign Linker API (Incubator)
390: Warnings for Value-Based Classes
392: Packaging Tool
393: Foreign-Memory Access API (Third Incubator)
394: Pattern Matching for instanceof
395: Records
396: Strongly Encapsulate JDK Internals by Default
397: Sealed Classes (Second Preview)
Download:
- Open JDK
- Oracle JDK
Language Features
• JEP 394 Pattern Matching for instanceof : Pattern Matching enhances
the Java programming language with pattern matching for
the instanceof operator. It allows conditional extraction of
components from objects, to be expressed more concisely and safely.
if (obj instanceof String) {
String s = (String) obj; // no need to cast
}
Language Features
• JEP 395 Records : Records provide a compact syntax for declaring classes
which are transparent holders for shallowly immutable data. This will
significantly reduce the verbosity of these classes and improve code
readability and maintainability.
public record Vehicle(String brand, String licensePlate) {
public Vehicle(String brand) {
this(brand, null);
}
}
JVM /improvements
• JEP 376 ZGC Concurrent Thread Processing : Moves ZGC thread-stack
processing from safepoints to a concurrent phase, allows sub-millisecond
pauses inside GC safepoints, even on large heaps. Removing the final
source of latency in the ZGC garbage collector will greatly improve
performance and efficiency of applications in this and subsquent releases.
• JEP 387 Elastic Metaspace : The new scheme allocates metaspace memory
in smaller chunks, reduces class-loader overhead and fragmentation. It
improves elasticity by returning unused metaspace memory to the
operating system, which leads to greater application performance and
decreases memory utilization.
New tools & libraries
• JEP 380 Unix-Domain Socket Channels : This feature adds Unix-domain (AF_UNIX) socket
support to the socket channel and server-socket channel APIs in the java.nio.channels
package. It extends the inherited channel mechanism to support Unix-domain socket
channels and server socket channels. Unix-domain sockets are used for inter-process
communication (IPC) on the same host. They are similar to TCP/IP sockets in most
respects, except that they are addressed by filesystem path names rather than Internet
Protocol (IP) addresses and port numbers. For local, inter-process communication, Unix-
domain sockets are both more secure and more efficient than TCP/IP loopback
connections.
• JEP 392 Packaging Tool jdk.jpackage : This feature was first introduced as an incubator
module in Java 14. This tool allows for packaging self-contained Java
applications. It supports native packaging formats to give end users a natural installation
experience. These formats include msi and exe on Windows, pkg and dmg on macOS,
and deb and rpm on Linux. It also allows launch-time parameters to be specified at
packaging time and can be invoked directly, from the command line, or
programmatically, via the ToolProvider API. This will improve the end-user experience
when installing applications and simplify deployments using the “app store” model.
Futureproofing Your Work
• JEP 390 Warning for Value-Based Classes @ValueBased : This feature designates the
primitive wrapper classes (java.lang.Integer, java.lang.Double, etc) as value-based (similar
to java.util.Optional and java.time.LocalDateTime) and add forRemoval to their
constructors, which are deprecated since JDK 9, prompting new warnings. It provides
warnings about improper attempts to synchronize on instances of any value-based
classes in the Java Platform.
• JEP 396 Strongly Encapsulate JDK Internals by default: This feature strongly
encapsulates all internal elements of the JDK by default, except for critical internal APIs
such as sun.misc.Unsafe. Code successfully compiled with earlier releases that accesses
internal APIs of the JDK may no longer work by default. This change aims to encourage
developers to migrate from using internal elements to using standard APIs, so that both
they and their users can upgrade without fuss to future Java releases. Strong
encapsulation is controlled by the launcher option -–illegal-access, for JDK 9 until JDK 15
defaults to warning, and starting with JDK 16 defaults to deny. It is still possible (for now)
to relax encapsulation of all packages with a single command-line option, in the future
only opening specific packages with –add-opens will work.
Incubator and Preview Features
• JEP 338 Vector API (Incubator) : This incubator API provides an initial iteration of an API
to express vector computations that reliably compile at runtime to optimal vector
hardware instructions on supported CPU architectures and thus achieve superior
performance to equivalent scalar computations. It allows taking advantage of the Single
Instruction Multiple Data (SIMD) instructions available on most modern CPUs. Although
HotSpot supports auto-vectorization, the set of transformable scalar operations is limited
and fragile to changes in the code. This API will allow developers to easily write portable
and performant vector algorithms in Java.
• JEP 389 Foreign Linker API (Incubator) : This incubator API offers statically-typed, pure-
Java access to native code. This API will considerably simplify the otherwise convoluted
and error-prone process of binding to a native library. Java has supported native method
calls via the Java Native Interface (JNI) since Java 1.1 but it is hard and brittle. Java
developers should be able to (mostly) just use any native library that is deemed useful
for a particular task. It also provides foreign-function support without the need for any
intervening JNI glue code.
Incubator and Preview Features
• JEP 393 Foreign Memory Access API (3rd Incubator) : First introduced as an
incubator API in Java 14 and again in Java 15, this API allows Java programs to
safely and efficiently operate on various kinds of foreign memory (e.g., native
memory, persistent memory, managed heap memory, etc.). It also provides the
foundation for the Foreign Linker API.
• JEP 397 Sealed Classes (2nd Preview) : This preview feature restricts which other
classes or interfaces may extend or implement them. It allows the author of a
class or interface to control which code is responsible for implementing it. Also, It
provides a more declarative way than access modifiers to restrict the use of a
superclass. And it supports future directions in pattern matching by underpinning
the exhaustive analysis of patterns.
public sealed class Vehicle permits Car, Truck, Motorcycle {...}
Improvements for OpenJDK Contributors
• JEP 347: Enable C++14 Language Features (in the JDK source code) – Allows the use of C++14
language features in JDK C++ source code, and gives specific guidance about which of those
features may be used in HotSpot code.
• JEP 357: Migrate from Mercurial to Git – Migrates the OpenJDK Community’s source code
repositories from Mercurial (hg) to Git.
• JEP 369: Migrate to GitHub – Hosts the OpenJDK Community’s Git repositories on GitHub.
https://github.com/openjdk
• JEP 386: Alpine Linux Port – Ports the JDK to Alpine Linux, and to other Linux distributions that
use musl as their primary C library, on both the x64 and AArch64 architectures.
• JEP 388: Windows/Aarch64 Port – Ports the JDK to Windows/AArch64.
Learn More!
https://inside.java - Podcast
https://www.youtube.com/java
https://developer.oracle.com/java/
Become an Oracle Certified Java SE 11 Developer
Thank you & Now Magic!
Contact Me 
Email : suyash@suyashjoshi.com
Instagram: @techillusionist
Twitter : @suyashcjoshi
Java dev mar_2021_keynote

More Related Content

What's hot

Maven Presentation - SureFire vs FailSafe
Maven Presentation - SureFire vs FailSafeMaven Presentation - SureFire vs FailSafe
Maven Presentation - SureFire vs FailSafe
Holasz Kati
 
An Introduction to Maven
An Introduction to MavenAn Introduction to Maven
An Introduction to Maven
Vadym Lotar
 

What's hot (20)

Spring Framework 3.2 - What's New
Spring Framework 3.2 - What's NewSpring Framework 3.2 - What's New
Spring Framework 3.2 - What's New
 
Managed Beans: When, Why and How
Managed Beans: When, Why and HowManaged Beans: When, Why and How
Managed Beans: When, Why and How
 
Maven ppt
Maven pptMaven ppt
Maven ppt
 
Apache maven and its impact on java 9 (Java One 2017)
Apache maven and its impact on java 9 (Java One 2017)Apache maven and its impact on java 9 (Java One 2017)
Apache maven and its impact on java 9 (Java One 2017)
 
Introduction to Maven
Introduction to MavenIntroduction to Maven
Introduction to Maven
 
Apache Maven
Apache MavenApache Maven
Apache Maven
 
Automated Deployment with Maven - going the whole nine yards
Automated Deployment with Maven - going the whole nine yardsAutomated Deployment with Maven - going the whole nine yards
Automated Deployment with Maven - going the whole nine yards
 
Introduction to Maven
Introduction to MavenIntroduction to Maven
Introduction to Maven
 
Maven Presentation - SureFire vs FailSafe
Maven Presentation - SureFire vs FailSafeMaven Presentation - SureFire vs FailSafe
Maven Presentation - SureFire vs FailSafe
 
Hands On with Maven
Hands On with MavenHands On with Maven
Hands On with Maven
 
Mobile Test Automation using one API and one infrastructure
Mobile Test Automation using one API and one infrastructureMobile Test Automation using one API and one infrastructure
Mobile Test Automation using one API and one infrastructure
 
DNUG Webcast: IBM Notes V10 Performance Boost
DNUG Webcast: IBM Notes V10 Performance BoostDNUG Webcast: IBM Notes V10 Performance Boost
DNUG Webcast: IBM Notes V10 Performance Boost
 
An introduction to Maven
An introduction to MavenAn introduction to Maven
An introduction to Maven
 
Apache Maven In 10 Slides
Apache Maven In 10 SlidesApache Maven In 10 Slides
Apache Maven In 10 Slides
 
Maven plugins, properties en profiles: Advanced concepts in Maven
Maven plugins, properties en profiles: Advanced concepts in MavenMaven plugins, properties en profiles: Advanced concepts in Maven
Maven plugins, properties en profiles: Advanced concepts in Maven
 
Java Builds with Maven and Ant
Java Builds with Maven and AntJava Builds with Maven and Ant
Java Builds with Maven and Ant
 
An Introduction to Maven Part 1
An Introduction to Maven Part 1An Introduction to Maven Part 1
An Introduction to Maven Part 1
 
Ch2
Ch2Ch2
Ch2
 
Build Automation using Maven
Build Automation using Maven Build Automation using Maven
Build Automation using Maven
 
An Introduction to Maven
An Introduction to MavenAn Introduction to Maven
An Introduction to Maven
 

Similar to Java dev mar_2021_keynote

Similar to Java dev mar_2021_keynote (20)

Java Webinar #12: "Java Versions and Features: Since JDK 8 to 16"
Java Webinar #12: "Java Versions and Features: Since JDK 8 to 16"Java Webinar #12: "Java Versions and Features: Since JDK 8 to 16"
Java Webinar #12: "Java Versions and Features: Since JDK 8 to 16"
 
Java10 new features 2018
Java10 new features 2018Java10 new features 2018
Java10 new features 2018
 
Java 40 versions_sgp
Java 40 versions_sgpJava 40 versions_sgp
Java 40 versions_sgp
 
A Journey through the JDKs (Java 9 to Java 11)
A Journey through the JDKs (Java 9 to Java 11)A Journey through the JDKs (Java 9 to Java 11)
A Journey through the JDKs (Java 9 to Java 11)
 
JDK 10 Java Module System
JDK 10 Java Module SystemJDK 10 Java Module System
JDK 10 Java Module System
 
Spring Boot 3 And Beyond
Spring Boot 3 And BeyondSpring Boot 3 And Beyond
Spring Boot 3 And Beyond
 
Java 8 Overview
Java 8 OverviewJava 8 Overview
Java 8 Overview
 
The features of java 11 vs. java 12
The features of  java 11 vs. java 12The features of  java 11 vs. java 12
The features of java 11 vs. java 12
 
Haj 4344-java se 9 and the application server-1
Haj 4344-java se 9 and the application server-1Haj 4344-java se 9 and the application server-1
Haj 4344-java se 9 and the application server-1
 
Deep Learning for Java Developer - Getting Started
Deep Learning for Java Developer - Getting StartedDeep Learning for Java Developer - Getting Started
Deep Learning for Java Developer - Getting Started
 
Java 5
Java 5Java 5
Java 5
 
JDK 8 and JDK 8 Updates in OpenJDK
JDK 8 and JDK 8 Updates in OpenJDKJDK 8 and JDK 8 Updates in OpenJDK
JDK 8 and JDK 8 Updates in OpenJDK
 
Java Introduction
Java IntroductionJava Introduction
Java Introduction
 
Advance java prasentation
Advance java prasentationAdvance java prasentation
Advance java prasentation
 
Java unit 1
Java unit 1Java unit 1
Java unit 1
 
Java ms harsha
Java ms harshaJava ms harsha
Java ms harsha
 
All experiment of java
All experiment of javaAll experiment of java
All experiment of java
 
Oracle CloudWorld 2023 - A High-Speed Data Ingestion Service in Java Using MQ...
Oracle CloudWorld 2023 - A High-Speed Data Ingestion Service in Java Using MQ...Oracle CloudWorld 2023 - A High-Speed Data Ingestion Service in Java Using MQ...
Oracle CloudWorld 2023 - A High-Speed Data Ingestion Service in Java Using MQ...
 
Introduction Java Web Framework and Web Server.
Introduction Java Web Framework and Web Server.Introduction Java Web Framework and Web Server.
Introduction Java Web Framework and Web Server.
 
Distributed & Highly Available server applications in Java and Scala
Distributed & Highly Available server applications in Java and ScalaDistributed & Highly Available server applications in Java and Scala
Distributed & Highly Available server applications in Java and Scala
 

More from Suyash Joshi

More from Suyash Joshi (7)

Immersive Web apps using Three.js, WebXR, Web Audio and Tensorflow.js.pdf
Immersive Web apps using Three.js, WebXR, Web Audio and Tensorflow.js.pdfImmersive Web apps using Three.js, WebXR, Web Audio and Tensorflow.js.pdf
Immersive Web apps using Three.js, WebXR, Web Audio and Tensorflow.js.pdf
 
Automatic Mental State Recognition
Automatic Mental State RecognitionAutomatic Mental State Recognition
Automatic Mental State Recognition
 
API Challenges for the Metaverse (AR, VR) Ecosystem
API Challenges for the Metaverse (AR, VR) EcosystemAPI Challenges for the Metaverse (AR, VR) Ecosystem
API Challenges for the Metaverse (AR, VR) Ecosystem
 
Creative AI Talk at MLOps Meetup
Creative AI Talk at MLOps MeetupCreative AI Talk at MLOps Meetup
Creative AI Talk at MLOps Meetup
 
State of Mobile AR - Mobile Week 2022 by Suyash Joshi.pptx
State of Mobile AR - Mobile Week 2022 by Suyash Joshi.pptxState of Mobile AR - Mobile Week 2022 by Suyash Joshi.pptx
State of Mobile AR - Mobile Week 2022 by Suyash Joshi.pptx
 
Creative Coding for fun and games (Java)
Creative Coding for fun and games (Java)Creative Coding for fun and games (Java)
Creative Coding for fun and games (Java)
 
Smart POI and Juggling Music Project
Smart POI and Juggling Music ProjectSmart POI and Juggling Music Project
Smart POI and Juggling Music Project
 

Recently uploaded

Recently uploaded (20)

From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Evaluating the top large language models.pdf
Evaluating the top large language models.pdfEvaluating the top large language models.pdf
Evaluating the top large language models.pdf
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 

Java dev mar_2021_keynote

  • 1. Hello Java 16! • /** • * @ presenter Suyash Joshi • * @ title Principal Cloud Developer Advocate at Oracle • * @ email suyash@suyashjoshi.com, yash.joshi@oracle.com • * @ event Global Summit for Java Devs 2021 • * @ twitter @suyashcjoshi @geekle • * @ date Mar 29, 2021 • */
  • 2. Java 16 – Continually Innovating https://blogs.oracle.com/java-platform-group/the-arrival-of-java-16
  • 3. Features / What’s New ? 338: Vector API (Incubator) 347: Enable C++14 Language Features 357: Migrate from Mercurial to Git 369: Migrate to GitHub 376: ZGC: Concurrent Thread-Stack Processing 380: Unix-Domain Socket Channels 386: Alpine Linux Port 387: Elastic Metaspace 388: Windows/AArch64 Port 389: Foreign Linker API (Incubator) 390: Warnings for Value-Based Classes 392: Packaging Tool 393: Foreign-Memory Access API (Third Incubator) 394: Pattern Matching for instanceof 395: Records 396: Strongly Encapsulate JDK Internals by Default 397: Sealed Classes (Second Preview) Download: - Open JDK - Oracle JDK
  • 4. Language Features • JEP 394 Pattern Matching for instanceof : Pattern Matching enhances the Java programming language with pattern matching for the instanceof operator. It allows conditional extraction of components from objects, to be expressed more concisely and safely. if (obj instanceof String) { String s = (String) obj; // no need to cast }
  • 5. Language Features • JEP 395 Records : Records provide a compact syntax for declaring classes which are transparent holders for shallowly immutable data. This will significantly reduce the verbosity of these classes and improve code readability and maintainability. public record Vehicle(String brand, String licensePlate) { public Vehicle(String brand) { this(brand, null); } }
  • 6. JVM /improvements • JEP 376 ZGC Concurrent Thread Processing : Moves ZGC thread-stack processing from safepoints to a concurrent phase, allows sub-millisecond pauses inside GC safepoints, even on large heaps. Removing the final source of latency in the ZGC garbage collector will greatly improve performance and efficiency of applications in this and subsquent releases. • JEP 387 Elastic Metaspace : The new scheme allocates metaspace memory in smaller chunks, reduces class-loader overhead and fragmentation. It improves elasticity by returning unused metaspace memory to the operating system, which leads to greater application performance and decreases memory utilization.
  • 7. New tools & libraries • JEP 380 Unix-Domain Socket Channels : This feature adds Unix-domain (AF_UNIX) socket support to the socket channel and server-socket channel APIs in the java.nio.channels package. It extends the inherited channel mechanism to support Unix-domain socket channels and server socket channels. Unix-domain sockets are used for inter-process communication (IPC) on the same host. They are similar to TCP/IP sockets in most respects, except that they are addressed by filesystem path names rather than Internet Protocol (IP) addresses and port numbers. For local, inter-process communication, Unix- domain sockets are both more secure and more efficient than TCP/IP loopback connections. • JEP 392 Packaging Tool jdk.jpackage : This feature was first introduced as an incubator module in Java 14. This tool allows for packaging self-contained Java applications. It supports native packaging formats to give end users a natural installation experience. These formats include msi and exe on Windows, pkg and dmg on macOS, and deb and rpm on Linux. It also allows launch-time parameters to be specified at packaging time and can be invoked directly, from the command line, or programmatically, via the ToolProvider API. This will improve the end-user experience when installing applications and simplify deployments using the “app store” model.
  • 8. Futureproofing Your Work • JEP 390 Warning for Value-Based Classes @ValueBased : This feature designates the primitive wrapper classes (java.lang.Integer, java.lang.Double, etc) as value-based (similar to java.util.Optional and java.time.LocalDateTime) and add forRemoval to their constructors, which are deprecated since JDK 9, prompting new warnings. It provides warnings about improper attempts to synchronize on instances of any value-based classes in the Java Platform. • JEP 396 Strongly Encapsulate JDK Internals by default: This feature strongly encapsulates all internal elements of the JDK by default, except for critical internal APIs such as sun.misc.Unsafe. Code successfully compiled with earlier releases that accesses internal APIs of the JDK may no longer work by default. This change aims to encourage developers to migrate from using internal elements to using standard APIs, so that both they and their users can upgrade without fuss to future Java releases. Strong encapsulation is controlled by the launcher option -–illegal-access, for JDK 9 until JDK 15 defaults to warning, and starting with JDK 16 defaults to deny. It is still possible (for now) to relax encapsulation of all packages with a single command-line option, in the future only opening specific packages with –add-opens will work.
  • 9. Incubator and Preview Features • JEP 338 Vector API (Incubator) : This incubator API provides an initial iteration of an API to express vector computations that reliably compile at runtime to optimal vector hardware instructions on supported CPU architectures and thus achieve superior performance to equivalent scalar computations. It allows taking advantage of the Single Instruction Multiple Data (SIMD) instructions available on most modern CPUs. Although HotSpot supports auto-vectorization, the set of transformable scalar operations is limited and fragile to changes in the code. This API will allow developers to easily write portable and performant vector algorithms in Java. • JEP 389 Foreign Linker API (Incubator) : This incubator API offers statically-typed, pure- Java access to native code. This API will considerably simplify the otherwise convoluted and error-prone process of binding to a native library. Java has supported native method calls via the Java Native Interface (JNI) since Java 1.1 but it is hard and brittle. Java developers should be able to (mostly) just use any native library that is deemed useful for a particular task. It also provides foreign-function support without the need for any intervening JNI glue code.
  • 10. Incubator and Preview Features • JEP 393 Foreign Memory Access API (3rd Incubator) : First introduced as an incubator API in Java 14 and again in Java 15, this API allows Java programs to safely and efficiently operate on various kinds of foreign memory (e.g., native memory, persistent memory, managed heap memory, etc.). It also provides the foundation for the Foreign Linker API. • JEP 397 Sealed Classes (2nd Preview) : This preview feature restricts which other classes or interfaces may extend or implement them. It allows the author of a class or interface to control which code is responsible for implementing it. Also, It provides a more declarative way than access modifiers to restrict the use of a superclass. And it supports future directions in pattern matching by underpinning the exhaustive analysis of patterns. public sealed class Vehicle permits Car, Truck, Motorcycle {...}
  • 11. Improvements for OpenJDK Contributors • JEP 347: Enable C++14 Language Features (in the JDK source code) – Allows the use of C++14 language features in JDK C++ source code, and gives specific guidance about which of those features may be used in HotSpot code. • JEP 357: Migrate from Mercurial to Git – Migrates the OpenJDK Community’s source code repositories from Mercurial (hg) to Git. • JEP 369: Migrate to GitHub – Hosts the OpenJDK Community’s Git repositories on GitHub. https://github.com/openjdk • JEP 386: Alpine Linux Port – Ports the JDK to Alpine Linux, and to other Linux distributions that use musl as their primary C library, on both the x64 and AArch64 architectures. • JEP 388: Windows/Aarch64 Port – Ports the JDK to Windows/AArch64.
  • 12. Learn More! https://inside.java - Podcast https://www.youtube.com/java https://developer.oracle.com/java/
  • 13. Become an Oracle Certified Java SE 11 Developer
  • 14. Thank you & Now Magic! Contact Me  Email : suyash@suyashjoshi.com Instagram: @techillusionist Twitter : @suyashcjoshi