SlideShare une entreprise Scribd logo
1  sur  23
Télécharger pour lire hors ligne
Java 9, 10, 11, 12…
@rorypreddy
"Moving Java Forward Faster"
20191995 1998 2001 2004 2007 2010 20222016
2014-03-18
2013-06-12
Java EE 7
2011-07-28
Java EE6
2009-12-10
2006-12-11
Java EE5
2006-05-11
2004-10-04
J2EE 1.4
2003-11-11
2002-02-06
J2EE 1.3
2001-09-24
2000-05-08
J2EE 1.2
1999-12-12
1998-12-08
JPE
Java
Professional
Edition
1998-05
1997-02-19
Java
JDK
Alpha-
Beta
1995
2010-01-27
Java1 Java1.1 Java1.2 Java 1.3 Java 1.4 Java5 Java SE 6 Java SE7 Java SE8
JDK 1.0 JDK 1.1 J2SE 1.2 J2SE 1.3 J2SE 1.4 J2SE 5.0
Oak Playground Kestrel Merlin Tiger Mustang Dolphin Spider
Java EE 8
2017-09-21
2013
1996-01-23
2017-09-21
2018-03-20
2018-09-25
2019-03
2019-09
2020-03
2020-09
2021-03
2021-09
Jakarta EE
Eclipse
Foundation
OpenJDK (New) Release Model
• New Features included (only) when ready
• Feature release versions released twice a year
• Update releases will ship quarterly
• Long-term support (LTS) feature release every three years
• Time-Based Release Versioning
JDK Version Numbering
• $FEATURE.$INTERIM.$UPDATE.$PATCH
• $FEATURE is incremented every six months
• $INTERIM is always zero, reserved for flexibility and future use
• $UPDATE is incremented one month after $FEATURE is incremented, and every three
months thereafter
• $PATCH is emergency patch-release counter
Available JDKs
• Oracle JDK www.oracle.com/technetwork/java/javase/downloads/
• Many OpenJDKs:
• Oracle OpenJDK jdk.java.net/11/
• Azul's Zulu OpenJDK www.azul.com/downloads/zulu/
• AdoptOpenJDK's OpenJDK adoptopenjdk.net
• AdoptOpenJDK's OpenJDK based on OpenJ9 adoptopenjdk.net
• RedHat's OpenJDK
• SAP's SapMachine OpenJDK
• Other Linux distribution's OpenJDKs
Demystifying "Free" Java
• $free as in free beer (cost) vs
free as in free speech (what can you do)
• For $free use OpenJDK binaries
• For free use OpenJDK with GPLv2+CE license
• Updates refers to code patches – typically $free
• Support means fixing bugs and answering questions – was never $free
Oracle's JDK is (not) "free"
• LTS release every 3 years – does not mean 3 years of free updates
• Oracle JDK 11 (and onward) can only be used in production with
commercial Java SE subscription
• Oracle JDK 8 can be used indefinitely for free
• Oracle will lead and contribute to each new JDK (every 6 months)
Open Sourcing and Converged Binaries
• Goal: No functional difference between OpenJDK and Oracle JDK in JDK 11
• Open sourcing closed-source parts of JDK
• Flight recorder
• Mission control
• …
• Removing some closed-source parts
• Browser Plugin
• Java Web Start
• JavaFX
• Backwards Compatibility – applications depending on Java SE should work
Converged Binaries
Up to JDK 10
Oracle JDK
OpenJDK
Java SE
JDK 11 and later
OpenJDK &
Oracle JDK
Java SE
(Long Term) Support
• Long Term Support (LTS) for all releases is not practical
• One Long Term Support release every three years
• Starting with JDK 11 (September 2018), then JDK 17 (September 2021), then JDK 23…
• For Oracle's commercial customers updates available for at least three years or longer
• JDK 9 – supported until March 2018 (release of JDK10)
• JDK 10 – supported until September 2018 (release of JDK 11)
• JDK 11 (September 2018) – free support until March 2019 (or 2022 commercial)
• JDK 12 (March 2019) …
JDK 9 – old news?
• Java Platform Module System (JPMS)
• All core Java libraries become modules
• 97 modules
• Most internal APIs encapsulated
• No more classpath hell
• Not widely adopted as yet
JDK 10
• JEPs included
• 286: Local-Variable Type Inference
• 296: Consolidate the JDK Forest into a Single Repository
• 304: Garbage-Collector Interface
• 307: Parallel Full GC for G1
• 310: Application Class-Data Sharing
• 312: Thread-Local Handshakes
• 313: Remove the Native-Header Generation Tool (javah)
• 314: Additional Unicode Language-Tag Extensions
• 316: Heap Allocation on Alternative Memory Devices
• 317: Experimental Java-Based JIT Compiler
• 319: Root Certificates
• 322: Time-Based Release Versioning
JDK 11
• JEPs included
• 181: Nest-Based Access Control
• 309: Dynamic Class-File Constants
• 315: Improve Aarch64 Intrinsics
• 318: Epsilon: A No-Op Garbage Collector
• 320: Remove the Java EE and CORBA Modules
• 321: HTTP Client (Standard)
• 323: Local-Variable Syntax for Lambda Parameters
• 324: Key Agreement with Curve25519 and Curve448
• 327: Unicode 10
• 328: Flight Recorder
• 329: ChaCha20 and Poly1305 Cryptographic Algorithms
• 330: Launch Single-File Source-Code Programs
• 331: Low-Overhead Heap Profiling
• 332: Transport Layer Security (TLS) 1.3
• 333: ZGC: A Scalable Low-Latency Garbage Collector
• 335: Deprecate the Nashorn JavaScript Engine
• 336: Deprecate the Pack200 Tools and API
//New Implicitly Typed Java 11+ Syntax
BiFunction<Double, Integer, Double> f3 = (var x, var y) -> x/y;
BiFunction<Double, Integer, Double> f4 = (@NotNull var x, @NotNull var y) -> x / y;
Double j = 3.;
Integer i = 2;
System.out.println(f4.apply(j, i));
Local-Variable Syntax for Lambda
Parameters
BiFunction<Double, Integer, Double> f3 = (Double x, Integer y) -> x/y;
Double j = 3.;
Integer i = 2;
System.out.println(f4.apply(j, i));
Launch Single-File Source-Code Programs
• Run a program supplied as a single file of Java source code
java -classpath /home/foo/java Hello.java Bonjour
• is equivalent to:
javac -classpath /home/foo/java Hello.java
java -classpath /home/foo/java Hello Bonjour
JDK 12
• JDK 12 is currently in Public Review
• 2018/05
• 2018/07
• 2018/10 - 2018/11
• 2019/01 - 2019/02
• 2019/03
Expert Group formation
Early Draft Review
Public Review
Proposed Final Draft
Final Release
• JEPs targeted to JDK 12, so far:
• 230: Microbenchmark Suite
• 325: Switch Expression enhacements
• 326: Raw String Literals
• 340: One AArch64 Port, Not Two
• 341: Default CDS Archives
• Schedule:
Backwards Compatibility
• It will be respected
• But with no guarantees
• New version may include breaking changes
• Anything for removal will be deprecated first
• Minimum of one release warning (6+ months)
Container Awareness and Java Jakarta EE
• JVM more Docker container aware
• Uses container CPU count and memory size
• Open sourcing Java EE
• Jakarta EE as a part of Eclipse Foundation
• Jakarta EE – Code first, then spec!
• Feed ideas back into Jakarta EE
• blogs.eclipse.org/post/mike-milinkovich/jakarta-ee-status-%E2%80%93-september-2018-update
Eclipse MicroProfile?
Q4
2016
Q2
2017
Q3
2017
Q1
2018
MP
v. 1.3
MP
v. 1.2
Move to MP
v. 1.1
Q2
2018
MP
v. 1.4 & 2.0
Q3
2018
MP
v. 2.1
Eclipse MicroProfile
Is Java really "Moving Forward Faster"?
• Much more frequent Java releases
• Faster access to new features
• Many new improvement ideas
• A lot of maintenance and housekeeping
• Java remains free
FROM panga/openjdk-alpine:11-jdk as builder
RUN jlink 
--add-modules java.sql,java.naming,java.management,java.instrument,java.security.jgss,java.desktop,jdk.unsupported 
--verbose 
--strip-debug 
--compress 2 
--no-header-files 
--no-man-pages 
--output /opt/jre-minimal
FROM alpine:3.8
COPY --from=builder /opt/jre-minimal /opt/jre-minimal
ENV LANG=C.UTF-8 
PATH=${PATH}:/opt/jre-minimal/bin
ADD modules /opt/app/modules
ARG JVM_OPTS
ENV JVM_OPTS=${JVM_OPTS}
CMD java ${JVM_OPTS} 
--add-opens java.base/java.lang=spring.core,javassist 
--module-path /opt/app/modules 
--module spring.petclinic
https://github.com/roryp/spring-petclinic

Contenu connexe

Tendances

Introduction to Java
Introduction to Java Introduction to Java
Introduction to Java Hitesh-Java
 
Workshop Framework(J2EE/OSGi/RCP)
Workshop Framework(J2EE/OSGi/RCP)Workshop Framework(J2EE/OSGi/RCP)
Workshop Framework(J2EE/OSGi/RCP)Summer Lu
 
1java Introduction
1java Introduction1java Introduction
1java IntroductionAdil Jafri
 
Java 8 in Anger (JavaOne)
Java 8 in Anger (JavaOne)Java 8 in Anger (JavaOne)
Java 8 in Anger (JavaOne)Trisha Gee
 
Java & J2EE Struts with Hibernate Framework
Java & J2EE Struts with Hibernate FrameworkJava & J2EE Struts with Hibernate Framework
Java & J2EE Struts with Hibernate FrameworkMohit Belwal
 
Java fundamentals
Java fundamentalsJava fundamentals
Java fundamentalsOm Ganesh
 
DevNexus 2019: Migrating to Java 11
DevNexus 2019: Migrating to Java 11DevNexus 2019: Migrating to Java 11
DevNexus 2019: Migrating to Java 11DaliaAboSheasha
 
Introduction to Java Programming
Introduction to Java Programming Introduction to Java Programming
Introduction to Java Programming Saravanakumar R
 
Java Tutorial to Learn Java Programming
Java Tutorial to Learn Java ProgrammingJava Tutorial to Learn Java Programming
Java Tutorial to Learn Java Programmingbusiness Corporate
 
Kaunas JUG#1: Java History and Trends (Dainius Mezanskas)
Kaunas JUG#1: Java History and Trends (Dainius Mezanskas)Kaunas JUG#1: Java History and Trends (Dainius Mezanskas)
Kaunas JUG#1: Java History and Trends (Dainius Mezanskas)Kaunas Java User Group
 

Tendances (20)

The Evolution of Java
The Evolution of JavaThe Evolution of Java
The Evolution of Java
 
Migrating to Java 9 Modules
Migrating to Java 9 ModulesMigrating to Java 9 Modules
Migrating to Java 9 Modules
 
Introduction to Java
Introduction to Java Introduction to Java
Introduction to Java
 
History of Java 1/2
History of Java 1/2History of Java 1/2
History of Java 1/2
 
Workshop Framework(J2EE/OSGi/RCP)
Workshop Framework(J2EE/OSGi/RCP)Workshop Framework(J2EE/OSGi/RCP)
Workshop Framework(J2EE/OSGi/RCP)
 
Evolution Of Java
Evolution Of JavaEvolution Of Java
Evolution Of Java
 
Lec 3 01_aug13
Lec 3 01_aug13Lec 3 01_aug13
Lec 3 01_aug13
 
Java unit 1
Java unit 1Java unit 1
Java unit 1
 
Learn Java Part 1
Learn Java Part 1Learn Java Part 1
Learn Java Part 1
 
1java Introduction
1java Introduction1java Introduction
1java Introduction
 
Evolution of java
Evolution of javaEvolution of java
Evolution of java
 
Java 8 in Anger (JavaOne)
Java 8 in Anger (JavaOne)Java 8 in Anger (JavaOne)
Java 8 in Anger (JavaOne)
 
Java & J2EE Struts with Hibernate Framework
Java & J2EE Struts with Hibernate FrameworkJava & J2EE Struts with Hibernate Framework
Java & J2EE Struts with Hibernate Framework
 
Java fundamentals
Java fundamentalsJava fundamentals
Java fundamentals
 
DevNexus 2019: Migrating to Java 11
DevNexus 2019: Migrating to Java 11DevNexus 2019: Migrating to Java 11
DevNexus 2019: Migrating to Java 11
 
Modular Java
Modular JavaModular Java
Modular Java
 
Introduction to Java Programming
Introduction to Java Programming Introduction to Java Programming
Introduction to Java Programming
 
Java Tutorial to Learn Java Programming
Java Tutorial to Learn Java ProgrammingJava Tutorial to Learn Java Programming
Java Tutorial to Learn Java Programming
 
Kaunas JUG#1: Java History and Trends (Dainius Mezanskas)
Kaunas JUG#1: Java History and Trends (Dainius Mezanskas)Kaunas JUG#1: Java History and Trends (Dainius Mezanskas)
Kaunas JUG#1: Java History and Trends (Dainius Mezanskas)
 
History of java'
History of java'History of java'
History of java'
 

Similaire à Whats new in Java 9,10,11,12

Java Is Still Free
Java Is Still FreeJava Is Still Free
Java Is Still FreeSimon Ritter
 
Java10 and Java11 at JJUG CCC 2018 Spr
Java10 and Java11 at JJUG CCC 2018 SprJava10 and Java11 at JJUG CCC 2018 Spr
Java10 and Java11 at JJUG CCC 2018 Sprなおき きしだ
 
JDK9 Features (Summary, 31/Jul/2015) #JJUG
JDK9 Features (Summary, 31/Jul/2015) #JJUGJDK9 Features (Summary, 31/Jul/2015) #JJUG
JDK9 Features (Summary, 31/Jul/2015) #JJUGYuji Kubota
 
New thing in JDK10 even that scala-er should know
New thing in JDK10 even that scala-er should knowNew thing in JDK10 even that scala-er should know
New thing in JDK10 even that scala-er should knowなおき きしだ
 
Jozi-JUG JDK 9 Unconference
Jozi-JUG JDK 9 UnconferenceJozi-JUG JDK 9 Unconference
Jozi-JUG JDK 9 UnconferenceHeather VanCura
 
Java 40 versions_sgp
Java 40 versions_sgpJava 40 versions_sgp
Java 40 versions_sgpmichaelisvy
 
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
 
Java 8 -12: da Oracle a Eclipse. Due anni e una rivoluzione
Java 8 -12: da Oracle a Eclipse. Due anni e una rivoluzioneJava 8 -12: da Oracle a Eclipse. Due anni e una rivoluzione
Java 8 -12: da Oracle a Eclipse. Due anni e una rivoluzioneThinkOpen
 
Summary of JDK10 and What will come into JDK11
Summary of JDK10 and What will come into JDK11Summary of JDK10 and What will come into JDK11
Summary of JDK10 and What will come into JDK11なおき きしだ
 
JCConf 2018 - Retrospect and Prospect of Java
JCConf 2018 - Retrospect and Prospect of JavaJCConf 2018 - Retrospect and Prospect of Java
JCConf 2018 - Retrospect and Prospect of JavaJoseph Kuo
 
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
 
Java10 new features 2018
Java10 new features 2018Java10 new features 2018
Java10 new features 2018Arjun Bhati
 
Voxxed Athens 2018 - Java EE is dead Long live jakarta EE!
Voxxed Athens 2018 - Java EE is dead Long live jakarta EE!Voxxed Athens 2018 - Java EE is dead Long live jakarta EE!
Voxxed Athens 2018 - Java EE is dead Long live jakarta EE!Voxxed Athens
 
A tour of Java and the JVM
A tour of Java and the JVMA tour of Java and the JVM
A tour of Java and the JVMAlex Birch
 

Similaire à Whats new in Java 9,10,11,12 (20)

Above and Beyond JDK 9, 10, 11, 12... - Branko Mihaljević and Martin Žagar on...
Above and Beyond JDK 9, 10, 11, 12... - Branko Mihaljević and Martin Žagar on...Above and Beyond JDK 9, 10, 11, 12... - Branko Mihaljević and Martin Žagar on...
Above and Beyond JDK 9, 10, 11, 12... - Branko Mihaljević and Martin Žagar on...
 
Java Is Still Free
Java Is Still FreeJava Is Still Free
Java Is Still Free
 
Java10 and Java11 at JJUG CCC 2018 Spr
Java10 and Java11 at JJUG CCC 2018 SprJava10 and Java11 at JJUG CCC 2018 Spr
Java10 and Java11 at JJUG CCC 2018 Spr
 
JDK9 Features (Summary, 31/Jul/2015) #JJUG
JDK9 Features (Summary, 31/Jul/2015) #JJUGJDK9 Features (Summary, 31/Jul/2015) #JJUG
JDK9 Features (Summary, 31/Jul/2015) #JJUG
 
New thing in JDK10 even that scala-er should know
New thing in JDK10 even that scala-er should knowNew thing in JDK10 even that scala-er should know
New thing in JDK10 even that scala-er should know
 
Jozi-JUG JDK 9 Unconference
Jozi-JUG JDK 9 UnconferenceJozi-JUG JDK 9 Unconference
Jozi-JUG JDK 9 Unconference
 
Java 40 versions_sgp
Java 40 versions_sgpJava 40 versions_sgp
Java 40 versions_sgp
 
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"
 
JavaCro'19 - The State of Java and Software Development in Croatia - Communit...
JavaCro'19 - The State of Java and Software Development in Croatia - Communit...JavaCro'19 - The State of Java and Software Development in Croatia - Communit...
JavaCro'19 - The State of Java and Software Development in Croatia - Communit...
 
Java 8 -12: da Oracle a Eclipse. Due anni e una rivoluzione
Java 8 -12: da Oracle a Eclipse. Due anni e una rivoluzioneJava 8 -12: da Oracle a Eclipse. Due anni e una rivoluzione
Java 8 -12: da Oracle a Eclipse. Due anni e una rivoluzione
 
Java 2012 conference keynote - Java Strategy & Roadmap - WebLogic & GlassFish...
Java 2012 conference keynote - Java Strategy & Roadmap - WebLogic & GlassFish...Java 2012 conference keynote - Java Strategy & Roadmap - WebLogic & GlassFish...
Java 2012 conference keynote - Java Strategy & Roadmap - WebLogic & GlassFish...
 
Summary of JDK10 and What will come into JDK11
Summary of JDK10 and What will come into JDK11Summary of JDK10 and What will come into JDK11
Summary of JDK10 and What will come into JDK11
 
JCConf 2018 - Retrospect and Prospect of Java
JCConf 2018 - Retrospect and Prospect of JavaJCConf 2018 - Retrospect and Prospect of Java
JCConf 2018 - Retrospect and Prospect of Java
 
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
 
Java10 new features 2018
Java10 new features 2018Java10 new features 2018
Java10 new features 2018
 
Voxxed Athens 2018 - Java EE is dead Long live jakarta EE!
Voxxed Athens 2018 - Java EE is dead Long live jakarta EE!Voxxed Athens 2018 - Java EE is dead Long live jakarta EE!
Voxxed Athens 2018 - Java EE is dead Long live jakarta EE!
 
Comparison between Oracle JDK, Oracle OpenJDK, and Red Hat OpenJDK
Comparison between Oracle JDK, Oracle OpenJDK, and Red Hat OpenJDKComparison between Oracle JDK, Oracle OpenJDK, and Red Hat OpenJDK
Comparison between Oracle JDK, Oracle OpenJDK, and Red Hat OpenJDK
 
A tour of Java and the JVM
A tour of Java and the JVMA tour of Java and the JVM
A tour of Java and the JVM
 
Java 9 sneak peek
Java 9 sneak peekJava 9 sneak peek
Java 9 sneak peek
 
Javantura v6 - JDK 11 & JDK 12 - Dalibor Topic
Javantura v6 - JDK 11 & JDK 12 - Dalibor TopicJavantura v6 - JDK 11 & JDK 12 - Dalibor Topic
Javantura v6 - JDK 11 & JDK 12 - Dalibor Topic
 

Plus de Rory Preddy

Programming for accessibility
Programming for accessibilityProgramming for accessibility
Programming for accessibilityRory Preddy
 
Whats new in .net for 2019
Whats new in .net for 2019Whats new in .net for 2019
Whats new in .net for 2019Rory Preddy
 
Whats new in .NET for 2019
Whats new in .NET for 2019Whats new in .NET for 2019
Whats new in .NET for 2019Rory Preddy
 
Getting started with Firebase
Getting started with FirebaseGetting started with Firebase
Getting started with FirebaseRory Preddy
 
AWS for Java Developers workshop
AWS for Java Developers workshopAWS for Java Developers workshop
AWS for Java Developers workshopRory Preddy
 
Java 2018 certifications
Java 2018 certificationsJava 2018 certifications
Java 2018 certificationsRory Preddy
 
AWS Transcribe and Comprehend
AWS Transcribe and ComprehendAWS Transcribe and Comprehend
AWS Transcribe and ComprehendRory Preddy
 
BDD with Mockito
BDD with MockitoBDD with Mockito
BDD with MockitoRory Preddy
 
Up and Running with Kubernetes
Up and Running with KubernetesUp and Running with Kubernetes
Up and Running with KubernetesRory Preddy
 
Functional Reactive Endpoints using Spring 5
Functional Reactive Endpoints using Spring 5Functional Reactive Endpoints using Spring 5
Functional Reactive Endpoints using Spring 5Rory Preddy
 
AWS and Serverless with Alexa
AWS and Serverless with AlexaAWS and Serverless with Alexa
AWS and Serverless with AlexaRory Preddy
 
AWS for the Java Developer
AWS for the Java DeveloperAWS for the Java Developer
AWS for the Java DeveloperRory Preddy
 
BDD - Keep love alive
BDD - Keep love aliveBDD - Keep love alive
BDD - Keep love aliveRory Preddy
 

Plus de Rory Preddy (18)

Programming for accessibility
Programming for accessibilityProgramming for accessibility
Programming for accessibility
 
Whats new in .net for 2019
Whats new in .net for 2019Whats new in .net for 2019
Whats new in .net for 2019
 
Whats new in .NET for 2019
Whats new in .NET for 2019Whats new in .NET for 2019
Whats new in .NET for 2019
 
Getting started with Firebase
Getting started with FirebaseGetting started with Firebase
Getting started with Firebase
 
AWS for Java Developers workshop
AWS for Java Developers workshopAWS for Java Developers workshop
AWS for Java Developers workshop
 
Java 2018 certifications
Java 2018 certificationsJava 2018 certifications
Java 2018 certifications
 
AWS Transcribe and Comprehend
AWS Transcribe and ComprehendAWS Transcribe and Comprehend
AWS Transcribe and Comprehend
 
BDD with Mockito
BDD with MockitoBDD with Mockito
BDD with Mockito
 
Up and Running with Kubernetes
Up and Running with KubernetesUp and Running with Kubernetes
Up and Running with Kubernetes
 
Dockercompose
DockercomposeDockercompose
Dockercompose
 
Functional Reactive Endpoints using Spring 5
Functional Reactive Endpoints using Spring 5Functional Reactive Endpoints using Spring 5
Functional Reactive Endpoints using Spring 5
 
AWS and Serverless with Alexa
AWS and Serverless with AlexaAWS and Serverless with Alexa
AWS and Serverless with Alexa
 
Nashorn
NashornNashorn
Nashorn
 
AWS for the Java Developer
AWS for the Java DeveloperAWS for the Java Developer
AWS for the Java Developer
 
Vs java (1)
Vs java (1)Vs java (1)
Vs java (1)
 
Polyglot
PolyglotPolyglot
Polyglot
 
BDD - Keep love alive
BDD - Keep love aliveBDD - Keep love alive
BDD - Keep love alive
 
Kotlin
KotlinKotlin
Kotlin
 

Dernier

TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providermohitmore19
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVshikhaohhpro
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsAndolasoft Inc
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsArshad QA
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfkalichargn70th171
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...MyIntelliSource, Inc.
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxComplianceQuest1
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Steffen Staab
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsAlberto González Trastoy
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...harshavardhanraghave
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsJhone kinadey
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxbodapatigopi8531
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerThousandEyes
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Modelsaagamshah0812
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️Delhi Call girls
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...kellynguyen01
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AIABDERRAOUF MEHENNI
 

Dernier (20)

TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.js
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptx
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS LiveVip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 

Whats new in Java 9,10,11,12

  • 1. Java 9, 10, 11, 12… @rorypreddy
  • 2. "Moving Java Forward Faster" 20191995 1998 2001 2004 2007 2010 20222016 2014-03-18 2013-06-12 Java EE 7 2011-07-28 Java EE6 2009-12-10 2006-12-11 Java EE5 2006-05-11 2004-10-04 J2EE 1.4 2003-11-11 2002-02-06 J2EE 1.3 2001-09-24 2000-05-08 J2EE 1.2 1999-12-12 1998-12-08 JPE Java Professional Edition 1998-05 1997-02-19 Java JDK Alpha- Beta 1995 2010-01-27 Java1 Java1.1 Java1.2 Java 1.3 Java 1.4 Java5 Java SE 6 Java SE7 Java SE8 JDK 1.0 JDK 1.1 J2SE 1.2 J2SE 1.3 J2SE 1.4 J2SE 5.0 Oak Playground Kestrel Merlin Tiger Mustang Dolphin Spider Java EE 8 2017-09-21 2013 1996-01-23 2017-09-21 2018-03-20 2018-09-25 2019-03 2019-09 2020-03 2020-09 2021-03 2021-09 Jakarta EE Eclipse Foundation
  • 3. OpenJDK (New) Release Model • New Features included (only) when ready • Feature release versions released twice a year • Update releases will ship quarterly • Long-term support (LTS) feature release every three years • Time-Based Release Versioning
  • 4. JDK Version Numbering • $FEATURE.$INTERIM.$UPDATE.$PATCH • $FEATURE is incremented every six months • $INTERIM is always zero, reserved for flexibility and future use • $UPDATE is incremented one month after $FEATURE is incremented, and every three months thereafter • $PATCH is emergency patch-release counter
  • 5. Available JDKs • Oracle JDK www.oracle.com/technetwork/java/javase/downloads/ • Many OpenJDKs: • Oracle OpenJDK jdk.java.net/11/ • Azul's Zulu OpenJDK www.azul.com/downloads/zulu/ • AdoptOpenJDK's OpenJDK adoptopenjdk.net • AdoptOpenJDK's OpenJDK based on OpenJ9 adoptopenjdk.net • RedHat's OpenJDK • SAP's SapMachine OpenJDK • Other Linux distribution's OpenJDKs
  • 6. Demystifying "Free" Java • $free as in free beer (cost) vs free as in free speech (what can you do) • For $free use OpenJDK binaries • For free use OpenJDK with GPLv2+CE license • Updates refers to code patches – typically $free • Support means fixing bugs and answering questions – was never $free
  • 7. Oracle's JDK is (not) "free" • LTS release every 3 years – does not mean 3 years of free updates • Oracle JDK 11 (and onward) can only be used in production with commercial Java SE subscription • Oracle JDK 8 can be used indefinitely for free • Oracle will lead and contribute to each new JDK (every 6 months)
  • 8. Open Sourcing and Converged Binaries • Goal: No functional difference between OpenJDK and Oracle JDK in JDK 11 • Open sourcing closed-source parts of JDK • Flight recorder • Mission control • … • Removing some closed-source parts • Browser Plugin • Java Web Start • JavaFX • Backwards Compatibility – applications depending on Java SE should work
  • 9. Converged Binaries Up to JDK 10 Oracle JDK OpenJDK Java SE JDK 11 and later OpenJDK & Oracle JDK Java SE
  • 10. (Long Term) Support • Long Term Support (LTS) for all releases is not practical • One Long Term Support release every three years • Starting with JDK 11 (September 2018), then JDK 17 (September 2021), then JDK 23… • For Oracle's commercial customers updates available for at least three years or longer • JDK 9 – supported until March 2018 (release of JDK10) • JDK 10 – supported until September 2018 (release of JDK 11) • JDK 11 (September 2018) – free support until March 2019 (or 2022 commercial) • JDK 12 (March 2019) …
  • 11. JDK 9 – old news? • Java Platform Module System (JPMS) • All core Java libraries become modules • 97 modules • Most internal APIs encapsulated • No more classpath hell • Not widely adopted as yet
  • 12. JDK 10 • JEPs included • 286: Local-Variable Type Inference • 296: Consolidate the JDK Forest into a Single Repository • 304: Garbage-Collector Interface • 307: Parallel Full GC for G1 • 310: Application Class-Data Sharing • 312: Thread-Local Handshakes • 313: Remove the Native-Header Generation Tool (javah) • 314: Additional Unicode Language-Tag Extensions • 316: Heap Allocation on Alternative Memory Devices • 317: Experimental Java-Based JIT Compiler • 319: Root Certificates • 322: Time-Based Release Versioning
  • 13. JDK 11 • JEPs included • 181: Nest-Based Access Control • 309: Dynamic Class-File Constants • 315: Improve Aarch64 Intrinsics • 318: Epsilon: A No-Op Garbage Collector • 320: Remove the Java EE and CORBA Modules • 321: HTTP Client (Standard) • 323: Local-Variable Syntax for Lambda Parameters • 324: Key Agreement with Curve25519 and Curve448 • 327: Unicode 10 • 328: Flight Recorder • 329: ChaCha20 and Poly1305 Cryptographic Algorithms • 330: Launch Single-File Source-Code Programs • 331: Low-Overhead Heap Profiling • 332: Transport Layer Security (TLS) 1.3 • 333: ZGC: A Scalable Low-Latency Garbage Collector • 335: Deprecate the Nashorn JavaScript Engine • 336: Deprecate the Pack200 Tools and API
  • 14. //New Implicitly Typed Java 11+ Syntax BiFunction<Double, Integer, Double> f3 = (var x, var y) -> x/y; BiFunction<Double, Integer, Double> f4 = (@NotNull var x, @NotNull var y) -> x / y; Double j = 3.; Integer i = 2; System.out.println(f4.apply(j, i)); Local-Variable Syntax for Lambda Parameters BiFunction<Double, Integer, Double> f3 = (Double x, Integer y) -> x/y; Double j = 3.; Integer i = 2; System.out.println(f4.apply(j, i));
  • 15. Launch Single-File Source-Code Programs • Run a program supplied as a single file of Java source code java -classpath /home/foo/java Hello.java Bonjour • is equivalent to: javac -classpath /home/foo/java Hello.java java -classpath /home/foo/java Hello Bonjour
  • 16. JDK 12 • JDK 12 is currently in Public Review • 2018/05 • 2018/07 • 2018/10 - 2018/11 • 2019/01 - 2019/02 • 2019/03 Expert Group formation Early Draft Review Public Review Proposed Final Draft Final Release • JEPs targeted to JDK 12, so far: • 230: Microbenchmark Suite • 325: Switch Expression enhacements • 326: Raw String Literals • 340: One AArch64 Port, Not Two • 341: Default CDS Archives • Schedule:
  • 17. Backwards Compatibility • It will be respected • But with no guarantees • New version may include breaking changes • Anything for removal will be deprecated first • Minimum of one release warning (6+ months)
  • 18. Container Awareness and Java Jakarta EE • JVM more Docker container aware • Uses container CPU count and memory size • Open sourcing Java EE • Jakarta EE as a part of Eclipse Foundation • Jakarta EE – Code first, then spec! • Feed ideas back into Jakarta EE
  • 21. Q4 2016 Q2 2017 Q3 2017 Q1 2018 MP v. 1.3 MP v. 1.2 Move to MP v. 1.1 Q2 2018 MP v. 1.4 & 2.0 Q3 2018 MP v. 2.1 Eclipse MicroProfile
  • 22. Is Java really "Moving Forward Faster"? • Much more frequent Java releases • Faster access to new features • Many new improvement ideas • A lot of maintenance and housekeeping • Java remains free
  • 23. FROM panga/openjdk-alpine:11-jdk as builder RUN jlink --add-modules java.sql,java.naming,java.management,java.instrument,java.security.jgss,java.desktop,jdk.unsupported --verbose --strip-debug --compress 2 --no-header-files --no-man-pages --output /opt/jre-minimal FROM alpine:3.8 COPY --from=builder /opt/jre-minimal /opt/jre-minimal ENV LANG=C.UTF-8 PATH=${PATH}:/opt/jre-minimal/bin ADD modules /opt/app/modules ARG JVM_OPTS ENV JVM_OPTS=${JVM_OPTS} CMD java ${JVM_OPTS} --add-opens java.base/java.lang=spring.core,javassist --module-path /opt/app/modules --module spring.petclinic https://github.com/roryp/spring-petclinic