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

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 NewSam Brannen
 
Managed Beans: When, Why and How
Managed Beans: When, Why and HowManaged Beans: When, Why and How
Managed Beans: When, Why and HowRussell Maher
 
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)Robert Scholte
 
Introduction to Maven
Introduction to MavenIntroduction to Maven
Introduction to MavenOnkar Deshpande
 
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 yardsJohn Ferguson Smart Limited
 
Maven Presentation - SureFire vs FailSafe
Maven Presentation - SureFire vs FailSafeMaven Presentation - SureFire vs FailSafe
Maven Presentation - SureFire vs FailSafeHolasz Kati
 
Hands On with Maven
Hands On with MavenHands On with Maven
Hands On with MavenSid Anand
 
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 infrastructureMichael Palotas
 
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 BoostChristoph Adler
 
An introduction to Maven
An introduction to MavenAn introduction to Maven
An introduction to MavenJoao Pereira
 
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 MavenGeert Pante
 
Java Builds with Maven and Ant
Java Builds with Maven and AntJava Builds with Maven and Ant
Java Builds with Maven and AntDavid Noble
 
An Introduction to Maven Part 1
An Introduction to Maven Part 1An Introduction to Maven Part 1
An Introduction to Maven Part 1MD Sayem Ahmed
 
Build Automation using Maven
Build Automation using Maven Build Automation using Maven
Build Automation using Maven Ankit Gubrani
 
An Introduction to Maven
An Introduction to MavenAn Introduction to Maven
An Introduction to MavenVadym 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

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"GlobalLogic Ukraine
 
Java10 new features 2018
Java10 new features 2018Java10 new features 2018
Java10 new features 2018Arjun Bhati
 
Java 40 versions_sgp
Java 40 versions_sgpJava 40 versions_sgp
Java 40 versions_sgpmichaelisvy
 
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)Markus GĂźnther
 
JDK 10 Java Module System
JDK 10 Java Module SystemJDK 10 Java Module System
JDK 10 Java Module SystemWolfgang Weigend
 
Spring Boot 3 And Beyond
Spring Boot 3 And BeyondSpring Boot 3 And Beyond
Spring Boot 3 And BeyondVMware Tanzu
 
Java 8 Overview
Java 8 OverviewJava 8 Overview
Java 8 OverviewNicola Pedot
 
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 12FarjanaAhmed3
 
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-1Kevin Sutter
 
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 StartedSuyash Joshi
 
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 OpenJDKWolfgang Weigend
 
Advance java prasentation
Advance java prasentationAdvance java prasentation
Advance java prasentationdhananajay95
 
Java ms harsha
Java ms harshaJava ms harsha
Java ms harshaHarsha Batra
 
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...Juarez Junior
 
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.suranisaunak
 
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 ScalaMax Alexejev
 

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

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.pdfSuyash Joshi
 
Automatic Mental State Recognition
Automatic Mental State RecognitionAutomatic Mental State Recognition
Automatic Mental State RecognitionSuyash Joshi
 
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) EcosystemSuyash Joshi
 
Creative AI Talk at MLOps Meetup
Creative AI Talk at MLOps MeetupCreative AI Talk at MLOps Meetup
Creative AI Talk at MLOps MeetupSuyash Joshi
 
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.pptxSuyash Joshi
 
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)Suyash Joshi
 
Smart POI and Juggling Music Project
Smart POI and Juggling Music ProjectSmart POI and Juggling Music Project
Smart POI and Juggling Music ProjectSuyash 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

Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityWSO2
 
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 educationjfdjdjcjdnsjd
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...apidays
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfOrbitshub
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businesspanagenda
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsNanddeep Nachan
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAndrey Devyatkin
 
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelMcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelDeepika Singh
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...apidays
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxRemote DBA Services
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamUiPathCommunity
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesrafiqahmad00786416
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxRustici Software
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...apidays
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native ApplicationsWSO2
 

Recently uploaded (20)

Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital Adaptability
 
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
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelMcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptx
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering Developers
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 

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