SlideShare une entreprise Scribd logo
1  sur  55
Télécharger pour lire hors ligne
#TOPWorkshop
Java 8 - 12
0
1
2
3
4
5
6
7
a cura di Theodor Augustin Dumitrescu
Pleased to meet you
JDK Technical Roadmap and Licenses
Highlights JDK 9
Highlights JDK 10
Highlights JDK 11
Highlights JDK 12
OpenJDK Projects
Questions
#TOPWorkshop
Java 8 - 12
0
1
2
3
4
5
6
7
00
WHOAREWE?
00 - Pleased to meet you
#TOPWorkshop
Java 8 -12
0
1
2
3
4
5
6
7
00 - Theodor Augustin Dumitrescu
00
#TOPWorkshop
Java 8 - 12
0
1
2
3
4
5
6
7
01
JDKTechnicalRoadmapandLicenses
01.1 - JDK Technical Roadmap
01.2 - JDKs Greenwood
01.3 - Which JDK Binary
01.4 - From JavaEE to JakartaEE
#TOPWorkshop
Java 8 -12
0
1
2
3
4
5
6
7
01.1 - JDK Technical Roadmap
01.1
#TOPWorkshop
Java 8 -12
0
1
2
3
4
5
6
7
01.1 - JDK Technical Roadmap
01.1
Moving Java Forward Faster
#TOPWorkshop
Java 8 -12
0
1
2
3
4
5
6
7
01.1 - JDK Technical Roadmap
01.1
© Oracle
#TOPWorkshop
Java 8 -12
0
1
2
3
4
5
6
7
01.2 - JDKs Greenwood
01.2
#TOPWorkshop
Java 8 -12
0
1
2
3
4
5
6
7
01.3 - Which JDK Binary
01.3 ● java.oralce.com: traditional Oracle binary
○ Oracle Binary Code License
○ FoU restrictions
● jdk.java.net: OpenJDK binary
○ GPLv2 with CPE license
○ Security and bug fix updates only until next JDK release
● adoptopenjdk.net
○ OpenJDK binary based on HotSpot or OpenJ9
#TOPWorkshop
Java 8 -12
0
1
2
3
4
5
6
7
01.3 - Which JDK Binary
01.3
O
Java SE
OpenJDK
Oracle JDK
Java SE
and OpenJDK
Oracle JDK
Before JDK 11 Since JDK 11
#TOPWorkshop
Java 8 -12
0
1
2
3
4
5
6
7
01.4 - From JavaEE to JakartaEE
01.4
#TOPWorkshop
Java 8 -12
0
1
2
3
4
5
6
7
01 - Recaptiluation
01 ● A new LTS release every three years
○ this does not mean three years of free updates
● From JDK 11, the Oracle JDK can only be used in production with a commercial
support contract
○ the only free JDK 11 and later will be OpenJDK binaries
● to receive free updates to the JDK you must update your JDK every six months
● JDK 8 and older are still available completely free
○ but from January, without security patches and bug fixes
○ you have to pay an license for them
#TOPWorkshop
Java 8 - 12
0
1
2
3
4
5
6
7
02
02.1 - JMPS
02.2 - Onwards and compatibility
HighlightsJDK9
02.3- Jigsaw
02.4- JEPs
#TOPWorkshop
Java 8 -12
0
1
2
3
4
5
6
7
02.1 - JPMS
02.1
● JEP 220: Modular Run-Time Images
○ 75 OpenJDK modules
■ 27 Java SE modules + 48 JDK modules
○ 99 Oracle JDK
■ 75 + 14 additional + 8 for JavaFX + 2 Oracle specific
● JEP 260: Encapsulate Most Internal APIs
○ ie sun.misc.Unsafe
#TOPWorkshop
Java 8 -12
0
1
2
3
4
5
6
7
02.2 - Onwards and compatibility
02.2
“Clean applications that just depend on java.se should just work”
Oracle
#TOPWorkshop
Java 8 -12
0
1
2
3
4
5
6
7
02.2 JDK 9: the clean Up Starts
● deprecated APIs were removed for the first time
● redundant features eliminated
● significant command line changes
○ removed 187 --XX flags
02.2 - Onwards and compatibility
#TOPWorkshop
Java 8 -12
0
1
2
3
4
5
6
7
02.2
JDK 9: the clean Up Starts
● deprecated APIs were removed for the first time
○ six methods and one class
○ in JDK 11
■ Applets, Browser Plugin, Web Start, JavaFx
■ java.se.ee meta-module
● redundant features eliminated
● significant command line changes
○ removed 187 --XX flags
02.2 - Onwards and compatibility
#TOPWorkshop
Java 8 -12
0
1
2
3
4
5
6
7
02.2
“New versions of Java may include breaking changes” - Oracle
● anything for removal will be deprecated first
○ JEP 277 @Deprecated(forRemoval=true)
○ minimum of one release warning (just six months)
02.2 - Onwards and compatibility
#TOPWorkshop
Java 8 -12
0
1
2
3
4
5
6
7
02.3 - Jigsaw
02.3
#TOPWorkshop
Java 8 -12
0
1
2
3
4
5
6
7
02.3
module module {
requires requires;
exports exports;
}
02.3 - Jigsaw
#TOPWorkshop
Java 8 -12
0
1
2
3
4
5
6
7
02.3
public to everyone
public, but only to specific modules
public only within a module
protected
<package>
private
from JDK9 public != accessible
02.3 - Jigsaw
#TOPWorkshop
Java 8 -12
0
1
2
3
4
5
6
7
02.3
Your App
packages &
classes
JDK/javac
Your App package
distributable
Any JRE/JDK
JVM
Java
packages and
classes
compiles
creates
needs
torun
Pre-JDK9
02.3 - Jigsaw
#TOPWorkshop
Java 8 -12
0
1
2
3
4
5
6
7
02.3
Since JDK9
JDK
Your App
modules
JDK
modules
compiles
JLink creates
JVM
JDK
modules
Your App
modules
02.3 - Jigsaw
#TOPWorkshop
Java 8 -12
0
1
2
3
4
5
6
7
02.4 - JEP 222: jshell
02.4
#TOPWorkshop
Java 8 -12
0
1
2
3
4
5
6
7
02.4 - JEP 213: Milling Project Coin
02.4
#TOPWorkshop
Java 8 -12
0
1
2
3
4
5
6
7
02.4 - JEP 213: Milling Project Coin
02.4
#TOPWorkshop
Java 8 -12
0
1
2
3
4
5
6
7
02.4 - JEP 269: Convenience Factory
Methods for Collections
02.4
#TOPWorkshop
Java 8 - 12
0
1
2
3
4
5
6
7
03
HighlightsJDK10
03.1 - JEP 286 Local Variable Type
03.2 - JEPs
03.3 - Docker awareness
#TOPWorkshop
Java 8 -12
0
1
2
3
4
5
6
7
03.1 - JEP 286 Local Variable Type
03.1
#TOPWorkshop
Java 8 -12
0
1
2
3
4
5
6
7
03.2 - JEPs
03.2
● JEP 296: Consolidate JDK forests into single repo
● JEP 304: Garbage Collector Interface (Red Hat)
● JEP 307: Parallel Full GC for G1
● JEP 310: Application Class-Data Sharing
● JEP 312: Thread-Local Handshakes
● JEP 316: Heap allocation on alternative devices (Intel)
● JEP 317: Experimental Java-based JIT compiler (GraalVM)
● JEP 319: Root Certificates
#TOPWorkshop
Java 8 -12
0
1
2
3
4
5
6
7
03.3 - Docker awareness
03.3
● adhering to memory limits set in the container
● setting available cpus in the container
● setting cpu constraints in the container
● -XX:-UseContainerSupport
#TOPWorkshop
Java 8 - 12
0
1
2
3
4
5
6
7
04
HighlightsJDK11
04.1 - JEPs
04.1.1 - JEP 318: Epsilon GC
04.1.5 - JEP 330: Launch Single File
#TOPWorkshop
Java 8 -12
0
1
2
3
4
5
6
7
04.1 - JEPs
04
● 17 JEPs
● 3 from outside Oracle
○ JEP 315 Red Hat
○ JEP 318 Red Hat
○ JEP 331 Google
#TOPWorkshop
Java 8 -12
0
1
2
3
4
5
6
7
04.1.1 - JEP 318: Epsilon GC
04
● A non-collecting garbage collector
● When memory is exhausted JVM will exit
○ OutOfMemoryExpection
○ Heap dump
● Useful for
○ GC algorithm testing
○ Memory pressure testing
○ Short-lived latency sensitive tasks
#TOPWorkshop
Java 8 -12
0
1
2
3
4
5
6
7
04.1.2 - JEP 321: HTTP Client
04
● Incubator module for HTTP/2 support
○ java.net.http module and package
■ HttpClient
■ HttpRequest
■ HttpResponse
■ WebSocket
○ Synchronous and asynchronous
#TOPWorkshop
Java 8 -12
0
1
2
3
4
5
6
7
04.1.3 - JEP 323: Extend Local-Variable
Syntax
04
● list.stream().map(s -> s.toString())
● list.stream().map((var s) -> s.toString())
● list.stream().map((@Notnull var s) -> s.toString())
#TOPWorkshop
Java 8 -12
0
1
2
3
4
5
6
7
04.1.4 - JEP 327: Unicode 10 Support
04
● 8_518 new characters
○ Bitcoin symbol
○ Nishu
○ Soyombo, Zanabazar Square
● Colbert emoji
#TOPWorkshop
Java 8 -12
0
1
2
3
4
5
6
7
04.1.5 - JEP 330: Launch Single File
Source Code
04
● In JDK 10 Three modes for the Java launcher
○ Launch a class file
○ Launch the main class of a JAR file
○ Launch the main class of a module
● Since JDK 11
○ launch a class declared in a source file
■ $ java TopWorkshop.java arg1 argN
○ single file source code shebang
■ #!$JAVA_HOME/bin/java --source 11
■ $ ./TopWorkshop arg1 argN
#TOPWorkshop
Java 8 -12
0
1
2
3
4
5
6
7
04.1.6 - Other JEPs
● JEP 315: Improve Aarch64 intrinsics
● JEP 324: Ket Agreement with Curve25519 and Curve448
● JEP 329: ChaCha20 and Poly1305 Cryptographic Algorithms
● JEP 331: Low-Overhead HEap Profiling
● JEP 332: Transport Layer Security 1.3
● JEP 333: ZGC
● JEP 335: Deprecate the Nashorn JavaScript Engine
● JEP 336: Deprecate the Pack200 Tools and API
04
#TOPWorkshop
Java 8 -12
0
1
2
3
4
5
6
7
● New I/O methods
○ InputStream nullInputStream()
○ OutputStream nullOutputStream()
○ Reader nullReader()
○ Writer nullWriter()
● Optional
○ boolean isEmpty()
● Predicate
○ Predicate not(Predicate)
● Character
○ toString(int)
04
04.1.7 - New API
#TOPWorkshop
Java 8 -12
0
1
2
3
4
5
6
7
04.5
● New String methods
○ inBlack()
○ Stream lines()
○ String repeat()
○ String strip()
○ String stripLeading()
○ String stripTrailing()
04.1.7 - New API
#TOPWorkshop
Java 8 - 12
0
1
2
3
4
5
6
7
05
HighlightsJDK12
05.2 - JEP 325: Switch Expressions
05.1 - JEPs
05.3 - JEP 326: Raw string literals
#TOPWorkshop
Java 8 -12
0
1
2
3
4
5
6
7
05.1 - JEPs
● 189: Shenandoah: A Low-Pause-Time Garbage Collector (Experimental)
● 230: Microbenchmark Suite
● 325: Switch Expressions (Preview)
● 334: JVM Constants API
● 340: One AArch64 Port, Not Two
● 341: Default CDS Archives
● 344: Abortable Mixed Collections for G1
● 346: Promptly Return Unused Committed Memory from G1
05.1
#TOPWorkshop
Java 8 -12
0
1
2
3
4
5
6
7
05.2 - JEP 325: Switch Expressions
T result = switch (arg) {
case L1, L2 -> e1;
case L3 -> e2;
default -> e3;
};
05.2
#TOPWorkshop
Java 8 -12
0
1
2
3
4
5
6
7
05.3 - JEP 326: Raw string literals
var daysInAWeekStr =
"Days in a week n" +
"tttSundayn" +
"tttMondayn" +
"tttTuesdayn" +
"tttWednesdayn" +
"tttThursdayn" +
"tttFridayn" +
"tttSaturdayn";
var daysInAWeekStr = `Days in a week
Sunday
Monday
Tuesday
Wednesday
Thursday
Friday
Saturday`.align();
05.3
#TOPWorkshop
Java 8 - 12
0
1
2
3
4
5
6
7
06 OpenJDkProjects
06.2 - Loom: continuations and fibers
06.1 - Amber: rightsizing language ceremony
06.3 - Panama: foreign-function/data interface
06.4 - Valhalla: value types and specialized generics
#TOPWorkshop
Java 8 -12
0
1
2
3
4
5
6
7
06.1 - Project Amber
● JEP 286 Local-Variable Type Inference (var) (JDK 10)
● JEP 301 Enhanced Enums
● JEP 305 Pattern Matching
● JEP 323 Local-Variable Syntax for Lambda Parameters (JDK 11)
● JEP 325 Switch Expressions (preview, JDK 12)
● JEP 326 Raw String Literals
● JEP 348 Java Compiler Intrinsics for JDK APIs
06.1
#TOPWorkshop
Java 8 -12
0
1
2
3
4
5
6
7
06.1 - Project Amber
final class Point {
public final int x;
public final int y;
public Point(int x, int y) {
this.x = x;
this.y = y;
}
// state-based implementations of
equals, hashCode, toString
// nothing else
record Point(int x, int y);
06.1
#TOPWorkshop
Java 8 -12
0
1
2
3
4
5
6
7
06.2 - Project Loom
“The goal of this Project is to explore and incubate Java VM features and APIs built
on top of them for the implementation of lightweight user-mode threads (fibers),
delimited continuations (of some form), and related features, such as explicit
tail-call.” - OpenJDK
06.2
#TOPWorkshop
Java 8 -12
0
1
2
3
4
5
6
7
06.2 - Project Loom
06.2
#TOPWorkshop
Java 8 -12
0
1
2
3
4
5
6
7
06.3 - Project Panama
● native function calling from JVM (C, C++), specifically per JEP 191
○ jextract tool
● native data access from JVM or inside JVM heap
● new data layouts in JVM heap
● native metadata definition for JVM
● header file API extraction tools (see below)
● native library management APIs
● native-oriented interpreter and runtime “hooks”
● class and method resolution “hooks”
● native-oriented JIT optimizations
● tooling or wrapper interposition for safety
● exploratory work with difficult-to-integrate native libraries
06.3
#TOPWorkshop
Java 8 -12
0
1
2
3
4
5
6
7
06.4 - Project Valhalla
● Value Types
● Generic Specialization
● And possibly other related topics
06.4
#TOPWorkshop
Java 8 -12
0
1
2
3
4
5
6
7
(c) @mreinhold
06.4 - Project Valhalla
06.4
#TOPWorkshop
Java 8 - 12
0
1
2
3
4
5
6
7
Q&A
07 - Questions?
07

Contenu connexe

Tendances

Advanced Oracle Troubleshooting
Advanced Oracle TroubleshootingAdvanced Oracle Troubleshooting
Advanced Oracle TroubleshootingHector Martinez
 
Tanel Poder - Troubleshooting Complex Oracle Performance Issues - Part 2
Tanel Poder - Troubleshooting Complex Oracle Performance Issues - Part 2Tanel Poder - Troubleshooting Complex Oracle Performance Issues - Part 2
Tanel Poder - Troubleshooting Complex Oracle Performance Issues - Part 2Tanel Poder
 
Oracle Linux and Oracle Database - A Trusted Combination
Oracle Linux and Oracle Database - A Trusted Combination Oracle Linux and Oracle Database - A Trusted Combination
Oracle Linux and Oracle Database - A Trusted Combination Guatemala User Group
 
Dsi 11g convert_to RAC
Dsi 11g convert_to RACDsi 11g convert_to RAC
Dsi 11g convert_to RACAnil Kumar
 
Moving Towards JDK 12
Moving Towards JDK 12Moving Towards JDK 12
Moving Towards JDK 12Simon Ritter
 
Modern Java Workshop
Modern Java WorkshopModern Java Workshop
Modern Java WorkshopSimon Ritter
 
PostgreSQL and JDBC: striving for high performance
PostgreSQL and JDBC: striving for high performancePostgreSQL and JDBC: striving for high performance
PostgreSQL and JDBC: striving for high performanceVladimir Sitnikov
 
Cloug Troubleshooting Oracle 11g Rac 101 Tips And Tricks
Cloug Troubleshooting Oracle 11g Rac 101 Tips And TricksCloug Troubleshooting Oracle 11g Rac 101 Tips And Tricks
Cloug Troubleshooting Oracle 11g Rac 101 Tips And TricksScott Jenner
 
Tanel Poder - Scripts and Tools short
Tanel Poder - Scripts and Tools shortTanel Poder - Scripts and Tools short
Tanel Poder - Scripts and Tools shortTanel Poder
 
Embedded systems
Embedded systems Embedded systems
Embedded systems Katy Anton
 
A meta model supporting both hardware and smalltalk-based execution of FPGA c...
A meta model supporting both hardware and smalltalk-based execution of FPGA c...A meta model supporting both hardware and smalltalk-based execution of FPGA c...
A meta model supporting both hardware and smalltalk-based execution of FPGA c...ESUG
 
openark-kit: MySQL utilities for everyday use
openark-kit: MySQL utilities for everyday useopenark-kit: MySQL utilities for everyday use
openark-kit: MySQL utilities for everyday useShlomi Noach
 
Oracle Database 12c - The Best Oracle Database 12c Tuning Features for Develo...
Oracle Database 12c - The Best Oracle Database 12c Tuning Features for Develo...Oracle Database 12c - The Best Oracle Database 12c Tuning Features for Develo...
Oracle Database 12c - The Best Oracle Database 12c Tuning Features for Develo...Alex Zaballa
 
Flex Cluster e Flex ASM - GUOB Tech Day - OTN TOUR LA Brazil 2014
Flex Cluster e Flex ASM - GUOB Tech Day - OTN TOUR LA Brazil 2014Flex Cluster e Flex ASM - GUOB Tech Day - OTN TOUR LA Brazil 2014
Flex Cluster e Flex ASM - GUOB Tech Day - OTN TOUR LA Brazil 2014Alex Zaballa
 
配置Golden gate同步ddl语句
配置Golden gate同步ddl语句配置Golden gate同步ddl语句
配置Golden gate同步ddl语句maclean liu
 
Improving PySpark Performance - Spark Beyond the JVM @ PyData DC 2016
Improving PySpark Performance - Spark Beyond the JVM @ PyData DC 2016Improving PySpark Performance - Spark Beyond the JVM @ PyData DC 2016
Improving PySpark Performance - Spark Beyond the JVM @ PyData DC 2016Holden Karau
 
Code lifecycle in the jvm - TopConf Linz
Code lifecycle in the jvm - TopConf LinzCode lifecycle in the jvm - TopConf Linz
Code lifecycle in the jvm - TopConf LinzIvan Krylov
 
Oracle real application clusters system tests with demo
Oracle real application clusters system tests with demoOracle real application clusters system tests with demo
Oracle real application clusters system tests with demoAjith Narayanan
 

Tendances (20)

Advanced Oracle Troubleshooting
Advanced Oracle TroubleshootingAdvanced Oracle Troubleshooting
Advanced Oracle Troubleshooting
 
Tanel Poder - Troubleshooting Complex Oracle Performance Issues - Part 2
Tanel Poder - Troubleshooting Complex Oracle Performance Issues - Part 2Tanel Poder - Troubleshooting Complex Oracle Performance Issues - Part 2
Tanel Poder - Troubleshooting Complex Oracle Performance Issues - Part 2
 
Oracle Linux and Oracle Database - A Trusted Combination
Oracle Linux and Oracle Database - A Trusted Combination Oracle Linux and Oracle Database - A Trusted Combination
Oracle Linux and Oracle Database - A Trusted Combination
 
Dsi 11g convert_to RAC
Dsi 11g convert_to RACDsi 11g convert_to RAC
Dsi 11g convert_to RAC
 
Moving Towards JDK 12
Moving Towards JDK 12Moving Towards JDK 12
Moving Towards JDK 12
 
Modern Java Workshop
Modern Java WorkshopModern Java Workshop
Modern Java Workshop
 
PostgreSQL and JDBC: striving for high performance
PostgreSQL and JDBC: striving for high performancePostgreSQL and JDBC: striving for high performance
PostgreSQL and JDBC: striving for high performance
 
Cloug Troubleshooting Oracle 11g Rac 101 Tips And Tricks
Cloug Troubleshooting Oracle 11g Rac 101 Tips And TricksCloug Troubleshooting Oracle 11g Rac 101 Tips And Tricks
Cloug Troubleshooting Oracle 11g Rac 101 Tips And Tricks
 
Tanel Poder - Scripts and Tools short
Tanel Poder - Scripts and Tools shortTanel Poder - Scripts and Tools short
Tanel Poder - Scripts and Tools short
 
Embedded systems
Embedded systems Embedded systems
Embedded systems
 
A meta model supporting both hardware and smalltalk-based execution of FPGA c...
A meta model supporting both hardware and smalltalk-based execution of FPGA c...A meta model supporting both hardware and smalltalk-based execution of FPGA c...
A meta model supporting both hardware and smalltalk-based execution of FPGA c...
 
De Java 8 a Java 17
De Java 8 a Java 17De Java 8 a Java 17
De Java 8 a Java 17
 
2 P Seminar
2 P Seminar2 P Seminar
2 P Seminar
 
openark-kit: MySQL utilities for everyday use
openark-kit: MySQL utilities for everyday useopenark-kit: MySQL utilities for everyday use
openark-kit: MySQL utilities for everyday use
 
Oracle Database 12c - The Best Oracle Database 12c Tuning Features for Develo...
Oracle Database 12c - The Best Oracle Database 12c Tuning Features for Develo...Oracle Database 12c - The Best Oracle Database 12c Tuning Features for Develo...
Oracle Database 12c - The Best Oracle Database 12c Tuning Features for Develo...
 
Flex Cluster e Flex ASM - GUOB Tech Day - OTN TOUR LA Brazil 2014
Flex Cluster e Flex ASM - GUOB Tech Day - OTN TOUR LA Brazil 2014Flex Cluster e Flex ASM - GUOB Tech Day - OTN TOUR LA Brazil 2014
Flex Cluster e Flex ASM - GUOB Tech Day - OTN TOUR LA Brazil 2014
 
配置Golden gate同步ddl语句
配置Golden gate同步ddl语句配置Golden gate同步ddl语句
配置Golden gate同步ddl语句
 
Improving PySpark Performance - Spark Beyond the JVM @ PyData DC 2016
Improving PySpark Performance - Spark Beyond the JVM @ PyData DC 2016Improving PySpark Performance - Spark Beyond the JVM @ PyData DC 2016
Improving PySpark Performance - Spark Beyond the JVM @ PyData DC 2016
 
Code lifecycle in the jvm - TopConf Linz
Code lifecycle in the jvm - TopConf LinzCode lifecycle in the jvm - TopConf Linz
Code lifecycle in the jvm - TopConf Linz
 
Oracle real application clusters system tests with demo
Oracle real application clusters system tests with demoOracle real application clusters system tests with demo
Oracle real application clusters system tests with demo
 

Similaire à Java 8 -12: da Oracle a Eclipse. Due anni e una rivoluzione

Whats new in Java 9,10,11,12
Whats new in Java 9,10,11,12Whats new in Java 9,10,11,12
Whats new in Java 9,10,11,12Rory Preddy
 
Jozi-JUG JDK 9 Unconference
Jozi-JUG JDK 9 UnconferenceJozi-JUG JDK 9 Unconference
Jozi-JUG JDK 9 UnconferenceHeather VanCura
 
Tracing the Breadcrumbs: Apache Spark Workload Diagnostics
Tracing the Breadcrumbs: Apache Spark Workload DiagnosticsTracing the Breadcrumbs: Apache Spark Workload Diagnostics
Tracing the Breadcrumbs: Apache Spark Workload DiagnosticsDatabricks
 
Java 22_ Unwrapped: What You Need to Know.pptx
Java 22_ Unwrapped: What You Need to Know.pptxJava 22_ Unwrapped: What You Need to Know.pptx
Java 22_ Unwrapped: What You Need to Know.pptxOleh Melnyk
 
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
 
Future of Java EE with SE 8 (revised)
Future of Java EE with SE 8 (revised)Future of Java EE with SE 8 (revised)
Future of Java EE with SE 8 (revised)Hirofumi Iwasaki
 
Tomcat and apache httpd training
Tomcat and apache httpd trainingTomcat and apache httpd training
Tomcat and apache httpd trainingFranck SIMON
 
Java 9/10/11 - What's new and why you should upgrade
Java 9/10/11 - What's new and why you should upgradeJava 9/10/11 - What's new and why you should upgrade
Java 9/10/11 - What's new and why you should upgradeSimone Bordet
 
Jigsaw - Javaforum 2015Q4
Jigsaw - Javaforum 2015Q4Jigsaw - Javaforum 2015Q4
Jigsaw - Javaforum 2015Q4Rikard Thulin
 
Java and OpenJDK: disecting the ecosystem
Java and OpenJDK: disecting the ecosystemJava and OpenJDK: disecting the ecosystem
Java and OpenJDK: disecting the ecosystemRafael Winterhalter
 
Java 40 versions_sgp
Java 40 versions_sgpJava 40 versions_sgp
Java 40 versions_sgpmichaelisvy
 
Java 9 - Part1: New Features (Not Jigsaw Modules)
Java 9 - Part1: New Features (Not Jigsaw Modules)Java 9 - Part1: New Features (Not Jigsaw Modules)
Java 9 - Part1: New Features (Not Jigsaw Modules)Simone Bordet
 
It's a JDK- Jungle Out There – JDK 15 and OpenJDK 15
It's a JDK- Jungle Out There – JDK 15 and OpenJDK 15It's a JDK- Jungle Out There – JDK 15 and OpenJDK 15
It's a JDK- Jungle Out There – JDK 15 and OpenJDK 15Wolfgang Weigend
 
Migration From Oracle to PostgreSQL
Migration From Oracle to PostgreSQLMigration From Oracle to PostgreSQL
Migration From Oracle to PostgreSQLPGConf APAC
 
Extreme Replication - RMOUG Presentation
Extreme Replication - RMOUG PresentationExtreme Replication - RMOUG Presentation
Extreme Replication - RMOUG PresentationBobby Curtis
 

Similaire à Java 8 -12: da Oracle a Eclipse. Due anni e una rivoluzione (20)

Whats new in Java 9,10,11,12
Whats new in Java 9,10,11,12Whats new in Java 9,10,11,12
Whats new in Java 9,10,11,12
 
Java 9 and Project Jigsaw
Java 9 and Project JigsawJava 9 and Project Jigsaw
Java 9 and Project Jigsaw
 
Jozi-JUG JDK 9 Unconference
Jozi-JUG JDK 9 UnconferenceJozi-JUG JDK 9 Unconference
Jozi-JUG JDK 9 Unconference
 
Tracing the Breadcrumbs: Apache Spark Workload Diagnostics
Tracing the Breadcrumbs: Apache Spark Workload DiagnosticsTracing the Breadcrumbs: Apache Spark Workload Diagnostics
Tracing the Breadcrumbs: Apache Spark Workload Diagnostics
 
Java 22_ Unwrapped: What You Need to Know.pptx
Java 22_ Unwrapped: What You Need to Know.pptxJava 22_ Unwrapped: What You Need to Know.pptx
Java 22_ Unwrapped: What You Need to Know.pptx
 
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"
 
Future of Java EE with SE 8 (revised)
Future of Java EE with SE 8 (revised)Future of Java EE with SE 8 (revised)
Future of Java EE with SE 8 (revised)
 
Tomcat and apache httpd training
Tomcat and apache httpd trainingTomcat and apache httpd training
Tomcat and apache httpd training
 
Java 9/10/11 - What's new and why you should upgrade
Java 9/10/11 - What's new and why you should upgradeJava 9/10/11 - What's new and why you should upgrade
Java 9/10/11 - What's new and why you should upgrade
 
Jigsaw - Javaforum 2015Q4
Jigsaw - Javaforum 2015Q4Jigsaw - Javaforum 2015Q4
Jigsaw - Javaforum 2015Q4
 
Java and OpenJDK: disecting the ecosystem
Java and OpenJDK: disecting the ecosystemJava and OpenJDK: disecting the ecosystem
Java and OpenJDK: disecting the ecosystem
 
De Java 8 a Java 11 y 14
De Java 8 a Java 11 y 14De Java 8 a Java 11 y 14
De Java 8 a Java 11 y 14
 
Java 40 versions_sgp
Java 40 versions_sgpJava 40 versions_sgp
Java 40 versions_sgp
 
De Java 8 ate Java 14
De Java 8 ate Java 14De Java 8 ate Java 14
De Java 8 ate Java 14
 
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
 
Java 9 new features
Java 9 new featuresJava 9 new features
Java 9 new features
 
Java 9 - Part1: New Features (Not Jigsaw Modules)
Java 9 - Part1: New Features (Not Jigsaw Modules)Java 9 - Part1: New Features (Not Jigsaw Modules)
Java 9 - Part1: New Features (Not Jigsaw Modules)
 
It's a JDK- Jungle Out There – JDK 15 and OpenJDK 15
It's a JDK- Jungle Out There – JDK 15 and OpenJDK 15It's a JDK- Jungle Out There – JDK 15 and OpenJDK 15
It's a JDK- Jungle Out There – JDK 15 and OpenJDK 15
 
Migration From Oracle to PostgreSQL
Migration From Oracle to PostgreSQLMigration From Oracle to PostgreSQL
Migration From Oracle to PostgreSQL
 
Extreme Replication - RMOUG Presentation
Extreme Replication - RMOUG PresentationExtreme Replication - RMOUG Presentation
Extreme Replication - RMOUG Presentation
 

Plus de ThinkOpen

Discover Facilitation: gestire le riunioni in modo efficace
Discover Facilitation: gestire le riunioni in modo efficaceDiscover Facilitation: gestire le riunioni in modo efficace
Discover Facilitation: gestire le riunioni in modo efficaceThinkOpen
 
Infrastructure as a code: a cloud approach
Infrastructure as a code: a cloud approachInfrastructure as a code: a cloud approach
Infrastructure as a code: a cloud approachThinkOpen
 
Smart Signage: la nuova digital experience
Smart Signage: la nuova digital experienceSmart Signage: la nuova digital experience
Smart Signage: la nuova digital experienceThinkOpen
 
I Graph Database: analisi del comportamento degli utenti
I Graph Database: analisi del comportamento degli utentiI Graph Database: analisi del comportamento degli utenti
I Graph Database: analisi del comportamento degli utentiThinkOpen
 
2019: Odissea nell'e-commerce
2019: Odissea nell'e-commerce2019: Odissea nell'e-commerce
2019: Odissea nell'e-commerceThinkOpen
 
Guida galattica a Javascript
Guida galattica a JavascriptGuida galattica a Javascript
Guida galattica a JavascriptThinkOpen
 
Amazon Alexa vs Google Home. Quale scegliere? Funzionalità e usi
Amazon Alexa vs Google Home. Quale scegliere? Funzionalità e usiAmazon Alexa vs Google Home. Quale scegliere? Funzionalità e usi
Amazon Alexa vs Google Home. Quale scegliere? Funzionalità e usiThinkOpen
 
Amazon Web Services - Le potenzialità di AWS e il mondo di Amazon Alexa by Ni...
Amazon Web Services - Le potenzialità di AWS e il mondo di Amazon Alexa by Ni...Amazon Web Services - Le potenzialità di AWS e il mondo di Amazon Alexa by Ni...
Amazon Web Services - Le potenzialità di AWS e il mondo di Amazon Alexa by Ni...ThinkOpen
 
Polymer 3.0 by Michele Gallotti
Polymer 3.0 by Michele GallottiPolymer 3.0 by Michele Gallotti
Polymer 3.0 by Michele GallottiThinkOpen
 
"Java 8, Lambda e la programmazione funzionale" by Theodor Dumitrescu
"Java 8, Lambda e la programmazione funzionale" by Theodor Dumitrescu"Java 8, Lambda e la programmazione funzionale" by Theodor Dumitrescu
"Java 8, Lambda e la programmazione funzionale" by Theodor DumitrescuThinkOpen
 
"Odoo: l'open source che fa tremare SAP" by Davide Davin e Nicola Napolitano
"Odoo: l'open source che fa tremare SAP" by Davide Davin e Nicola Napolitano"Odoo: l'open source che fa tremare SAP" by Davide Davin e Nicola Napolitano
"Odoo: l'open source che fa tremare SAP" by Davide Davin e Nicola NapolitanoThinkOpen
 
"Configuration Manager: il ruolo nel ciclo di vita del software" by Omar Rossini
"Configuration Manager: il ruolo nel ciclo di vita del software" by Omar Rossini"Configuration Manager: il ruolo nel ciclo di vita del software" by Omar Rossini
"Configuration Manager: il ruolo nel ciclo di vita del software" by Omar RossiniThinkOpen
 
"Google Home: how to make Google do it" by Theodor Dumitrescu e Gianfranco Bo...
"Google Home: how to make Google do it" by Theodor Dumitrescu e Gianfranco Bo..."Google Home: how to make Google do it" by Theodor Dumitrescu e Gianfranco Bo...
"Google Home: how to make Google do it" by Theodor Dumitrescu e Gianfranco Bo...ThinkOpen
 
"ThinkOpen Agile Days - #Day3" by Donato Andrisani e Giuseppe Trotta
"ThinkOpen Agile Days - #Day3" by Donato Andrisani e Giuseppe Trotta"ThinkOpen Agile Days - #Day3" by Donato Andrisani e Giuseppe Trotta
"ThinkOpen Agile Days - #Day3" by Donato Andrisani e Giuseppe TrottaThinkOpen
 
"Reactive programming" by Theodor Dumitrescu & Gianfranco Bottiglieri
"Reactive programming" by Theodor Dumitrescu & Gianfranco Bottiglieri"Reactive programming" by Theodor Dumitrescu & Gianfranco Bottiglieri
"Reactive programming" by Theodor Dumitrescu & Gianfranco BottiglieriThinkOpen
 
"GDPR: cos'è e come funziona" by Francesco Puglisi
"GDPR: cos'è e come funziona" by Francesco Puglisi"GDPR: cos'è e come funziona" by Francesco Puglisi
"GDPR: cos'è e come funziona" by Francesco PuglisiThinkOpen
 
"ThinkOpen Agile Days - #Day2" by Donato Andrisani e Giuseppe Trotta
"ThinkOpen Agile Days - #Day2" by Donato Andrisani e Giuseppe Trotta"ThinkOpen Agile Days - #Day2" by Donato Andrisani e Giuseppe Trotta
"ThinkOpen Agile Days - #Day2" by Donato Andrisani e Giuseppe TrottaThinkOpen
 
"ThinkOpen Agile Days - #Day" by Giuseppe Trotta
"ThinkOpen Agile Days - #Day" by Giuseppe Trotta"ThinkOpen Agile Days - #Day" by Giuseppe Trotta
"ThinkOpen Agile Days - #Day" by Giuseppe TrottaThinkOpen
 
"React Native" by Vanessa Leo e Roberto Brogi
"React Native" by Vanessa Leo e Roberto Brogi "React Native" by Vanessa Leo e Roberto Brogi
"React Native" by Vanessa Leo e Roberto Brogi ThinkOpen
 
"How to... React" by Luca Perna
"How to... React" by Luca Perna"How to... React" by Luca Perna
"How to... React" by Luca PernaThinkOpen
 

Plus de ThinkOpen (20)

Discover Facilitation: gestire le riunioni in modo efficace
Discover Facilitation: gestire le riunioni in modo efficaceDiscover Facilitation: gestire le riunioni in modo efficace
Discover Facilitation: gestire le riunioni in modo efficace
 
Infrastructure as a code: a cloud approach
Infrastructure as a code: a cloud approachInfrastructure as a code: a cloud approach
Infrastructure as a code: a cloud approach
 
Smart Signage: la nuova digital experience
Smart Signage: la nuova digital experienceSmart Signage: la nuova digital experience
Smart Signage: la nuova digital experience
 
I Graph Database: analisi del comportamento degli utenti
I Graph Database: analisi del comportamento degli utentiI Graph Database: analisi del comportamento degli utenti
I Graph Database: analisi del comportamento degli utenti
 
2019: Odissea nell'e-commerce
2019: Odissea nell'e-commerce2019: Odissea nell'e-commerce
2019: Odissea nell'e-commerce
 
Guida galattica a Javascript
Guida galattica a JavascriptGuida galattica a Javascript
Guida galattica a Javascript
 
Amazon Alexa vs Google Home. Quale scegliere? Funzionalità e usi
Amazon Alexa vs Google Home. Quale scegliere? Funzionalità e usiAmazon Alexa vs Google Home. Quale scegliere? Funzionalità e usi
Amazon Alexa vs Google Home. Quale scegliere? Funzionalità e usi
 
Amazon Web Services - Le potenzialità di AWS e il mondo di Amazon Alexa by Ni...
Amazon Web Services - Le potenzialità di AWS e il mondo di Amazon Alexa by Ni...Amazon Web Services - Le potenzialità di AWS e il mondo di Amazon Alexa by Ni...
Amazon Web Services - Le potenzialità di AWS e il mondo di Amazon Alexa by Ni...
 
Polymer 3.0 by Michele Gallotti
Polymer 3.0 by Michele GallottiPolymer 3.0 by Michele Gallotti
Polymer 3.0 by Michele Gallotti
 
"Java 8, Lambda e la programmazione funzionale" by Theodor Dumitrescu
"Java 8, Lambda e la programmazione funzionale" by Theodor Dumitrescu"Java 8, Lambda e la programmazione funzionale" by Theodor Dumitrescu
"Java 8, Lambda e la programmazione funzionale" by Theodor Dumitrescu
 
"Odoo: l'open source che fa tremare SAP" by Davide Davin e Nicola Napolitano
"Odoo: l'open source che fa tremare SAP" by Davide Davin e Nicola Napolitano"Odoo: l'open source che fa tremare SAP" by Davide Davin e Nicola Napolitano
"Odoo: l'open source che fa tremare SAP" by Davide Davin e Nicola Napolitano
 
"Configuration Manager: il ruolo nel ciclo di vita del software" by Omar Rossini
"Configuration Manager: il ruolo nel ciclo di vita del software" by Omar Rossini"Configuration Manager: il ruolo nel ciclo di vita del software" by Omar Rossini
"Configuration Manager: il ruolo nel ciclo di vita del software" by Omar Rossini
 
"Google Home: how to make Google do it" by Theodor Dumitrescu e Gianfranco Bo...
"Google Home: how to make Google do it" by Theodor Dumitrescu e Gianfranco Bo..."Google Home: how to make Google do it" by Theodor Dumitrescu e Gianfranco Bo...
"Google Home: how to make Google do it" by Theodor Dumitrescu e Gianfranco Bo...
 
"ThinkOpen Agile Days - #Day3" by Donato Andrisani e Giuseppe Trotta
"ThinkOpen Agile Days - #Day3" by Donato Andrisani e Giuseppe Trotta"ThinkOpen Agile Days - #Day3" by Donato Andrisani e Giuseppe Trotta
"ThinkOpen Agile Days - #Day3" by Donato Andrisani e Giuseppe Trotta
 
"Reactive programming" by Theodor Dumitrescu & Gianfranco Bottiglieri
"Reactive programming" by Theodor Dumitrescu & Gianfranco Bottiglieri"Reactive programming" by Theodor Dumitrescu & Gianfranco Bottiglieri
"Reactive programming" by Theodor Dumitrescu & Gianfranco Bottiglieri
 
"GDPR: cos'è e come funziona" by Francesco Puglisi
"GDPR: cos'è e come funziona" by Francesco Puglisi"GDPR: cos'è e come funziona" by Francesco Puglisi
"GDPR: cos'è e come funziona" by Francesco Puglisi
 
"ThinkOpen Agile Days - #Day2" by Donato Andrisani e Giuseppe Trotta
"ThinkOpen Agile Days - #Day2" by Donato Andrisani e Giuseppe Trotta"ThinkOpen Agile Days - #Day2" by Donato Andrisani e Giuseppe Trotta
"ThinkOpen Agile Days - #Day2" by Donato Andrisani e Giuseppe Trotta
 
"ThinkOpen Agile Days - #Day" by Giuseppe Trotta
"ThinkOpen Agile Days - #Day" by Giuseppe Trotta"ThinkOpen Agile Days - #Day" by Giuseppe Trotta
"ThinkOpen Agile Days - #Day" by Giuseppe Trotta
 
"React Native" by Vanessa Leo e Roberto Brogi
"React Native" by Vanessa Leo e Roberto Brogi "React Native" by Vanessa Leo e Roberto Brogi
"React Native" by Vanessa Leo e Roberto Brogi
 
"How to... React" by Luca Perna
"How to... React" by Luca Perna"How to... React" by Luca Perna
"How to... React" by Luca Perna
 

Dernier

"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...Zilliz
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Zilliz
 
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
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 
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
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingEdi Saputra
 
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
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Angeliki Cooney
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyKhushali Kathiriya
 
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
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Victor Rentea
 
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
 
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
 
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 FresherRemote DBA Services
 
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
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontologyjohnbeverley2021
 
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 Takeoffsammart93
 
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
 
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
 

Dernier (20)

"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)
 
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
 
+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...
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
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
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
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
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
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
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
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
 
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
 
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
 
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
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontology
 
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
 
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
 
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
 

Java 8 -12: da Oracle a Eclipse. Due anni e una rivoluzione

  • 1.
  • 2. #TOPWorkshop Java 8 - 12 0 1 2 3 4 5 6 7 a cura di Theodor Augustin Dumitrescu Pleased to meet you JDK Technical Roadmap and Licenses Highlights JDK 9 Highlights JDK 10 Highlights JDK 11 Highlights JDK 12 OpenJDK Projects Questions
  • 3. #TOPWorkshop Java 8 - 12 0 1 2 3 4 5 6 7 00 WHOAREWE? 00 - Pleased to meet you
  • 4. #TOPWorkshop Java 8 -12 0 1 2 3 4 5 6 7 00 - Theodor Augustin Dumitrescu 00
  • 5. #TOPWorkshop Java 8 - 12 0 1 2 3 4 5 6 7 01 JDKTechnicalRoadmapandLicenses 01.1 - JDK Technical Roadmap 01.2 - JDKs Greenwood 01.3 - Which JDK Binary 01.4 - From JavaEE to JakartaEE
  • 6. #TOPWorkshop Java 8 -12 0 1 2 3 4 5 6 7 01.1 - JDK Technical Roadmap 01.1
  • 7. #TOPWorkshop Java 8 -12 0 1 2 3 4 5 6 7 01.1 - JDK Technical Roadmap 01.1 Moving Java Forward Faster
  • 8. #TOPWorkshop Java 8 -12 0 1 2 3 4 5 6 7 01.1 - JDK Technical Roadmap 01.1 © Oracle
  • 10. #TOPWorkshop Java 8 -12 0 1 2 3 4 5 6 7 01.3 - Which JDK Binary 01.3 ● java.oralce.com: traditional Oracle binary ○ Oracle Binary Code License ○ FoU restrictions ● jdk.java.net: OpenJDK binary ○ GPLv2 with CPE license ○ Security and bug fix updates only until next JDK release ● adoptopenjdk.net ○ OpenJDK binary based on HotSpot or OpenJ9
  • 11. #TOPWorkshop Java 8 -12 0 1 2 3 4 5 6 7 01.3 - Which JDK Binary 01.3 O Java SE OpenJDK Oracle JDK Java SE and OpenJDK Oracle JDK Before JDK 11 Since JDK 11
  • 12. #TOPWorkshop Java 8 -12 0 1 2 3 4 5 6 7 01.4 - From JavaEE to JakartaEE 01.4
  • 13. #TOPWorkshop Java 8 -12 0 1 2 3 4 5 6 7 01 - Recaptiluation 01 ● A new LTS release every three years ○ this does not mean three years of free updates ● From JDK 11, the Oracle JDK can only be used in production with a commercial support contract ○ the only free JDK 11 and later will be OpenJDK binaries ● to receive free updates to the JDK you must update your JDK every six months ● JDK 8 and older are still available completely free ○ but from January, without security patches and bug fixes ○ you have to pay an license for them
  • 14. #TOPWorkshop Java 8 - 12 0 1 2 3 4 5 6 7 02 02.1 - JMPS 02.2 - Onwards and compatibility HighlightsJDK9 02.3- Jigsaw 02.4- JEPs
  • 15. #TOPWorkshop Java 8 -12 0 1 2 3 4 5 6 7 02.1 - JPMS 02.1 ● JEP 220: Modular Run-Time Images ○ 75 OpenJDK modules ■ 27 Java SE modules + 48 JDK modules ○ 99 Oracle JDK ■ 75 + 14 additional + 8 for JavaFX + 2 Oracle specific ● JEP 260: Encapsulate Most Internal APIs ○ ie sun.misc.Unsafe
  • 16. #TOPWorkshop Java 8 -12 0 1 2 3 4 5 6 7 02.2 - Onwards and compatibility 02.2 “Clean applications that just depend on java.se should just work” Oracle
  • 17. #TOPWorkshop Java 8 -12 0 1 2 3 4 5 6 7 02.2 JDK 9: the clean Up Starts ● deprecated APIs were removed for the first time ● redundant features eliminated ● significant command line changes ○ removed 187 --XX flags 02.2 - Onwards and compatibility
  • 18. #TOPWorkshop Java 8 -12 0 1 2 3 4 5 6 7 02.2 JDK 9: the clean Up Starts ● deprecated APIs were removed for the first time ○ six methods and one class ○ in JDK 11 ■ Applets, Browser Plugin, Web Start, JavaFx ■ java.se.ee meta-module ● redundant features eliminated ● significant command line changes ○ removed 187 --XX flags 02.2 - Onwards and compatibility
  • 19. #TOPWorkshop Java 8 -12 0 1 2 3 4 5 6 7 02.2 “New versions of Java may include breaking changes” - Oracle ● anything for removal will be deprecated first ○ JEP 277 @Deprecated(forRemoval=true) ○ minimum of one release warning (just six months) 02.2 - Onwards and compatibility
  • 21. #TOPWorkshop Java 8 -12 0 1 2 3 4 5 6 7 02.3 module module { requires requires; exports exports; } 02.3 - Jigsaw
  • 22. #TOPWorkshop Java 8 -12 0 1 2 3 4 5 6 7 02.3 public to everyone public, but only to specific modules public only within a module protected <package> private from JDK9 public != accessible 02.3 - Jigsaw
  • 23. #TOPWorkshop Java 8 -12 0 1 2 3 4 5 6 7 02.3 Your App packages & classes JDK/javac Your App package distributable Any JRE/JDK JVM Java packages and classes compiles creates needs torun Pre-JDK9 02.3 - Jigsaw
  • 24. #TOPWorkshop Java 8 -12 0 1 2 3 4 5 6 7 02.3 Since JDK9 JDK Your App modules JDK modules compiles JLink creates JVM JDK modules Your App modules 02.3 - Jigsaw
  • 26. #TOPWorkshop Java 8 -12 0 1 2 3 4 5 6 7 02.4 - JEP 213: Milling Project Coin 02.4
  • 27. #TOPWorkshop Java 8 -12 0 1 2 3 4 5 6 7 02.4 - JEP 213: Milling Project Coin 02.4
  • 28. #TOPWorkshop Java 8 -12 0 1 2 3 4 5 6 7 02.4 - JEP 269: Convenience Factory Methods for Collections 02.4
  • 29. #TOPWorkshop Java 8 - 12 0 1 2 3 4 5 6 7 03 HighlightsJDK10 03.1 - JEP 286 Local Variable Type 03.2 - JEPs 03.3 - Docker awareness
  • 30. #TOPWorkshop Java 8 -12 0 1 2 3 4 5 6 7 03.1 - JEP 286 Local Variable Type 03.1
  • 31. #TOPWorkshop Java 8 -12 0 1 2 3 4 5 6 7 03.2 - JEPs 03.2 ● JEP 296: Consolidate JDK forests into single repo ● JEP 304: Garbage Collector Interface (Red Hat) ● JEP 307: Parallel Full GC for G1 ● JEP 310: Application Class-Data Sharing ● JEP 312: Thread-Local Handshakes ● JEP 316: Heap allocation on alternative devices (Intel) ● JEP 317: Experimental Java-based JIT compiler (GraalVM) ● JEP 319: Root Certificates
  • 32. #TOPWorkshop Java 8 -12 0 1 2 3 4 5 6 7 03.3 - Docker awareness 03.3 ● adhering to memory limits set in the container ● setting available cpus in the container ● setting cpu constraints in the container ● -XX:-UseContainerSupport
  • 33. #TOPWorkshop Java 8 - 12 0 1 2 3 4 5 6 7 04 HighlightsJDK11 04.1 - JEPs 04.1.1 - JEP 318: Epsilon GC 04.1.5 - JEP 330: Launch Single File
  • 34. #TOPWorkshop Java 8 -12 0 1 2 3 4 5 6 7 04.1 - JEPs 04 ● 17 JEPs ● 3 from outside Oracle ○ JEP 315 Red Hat ○ JEP 318 Red Hat ○ JEP 331 Google
  • 35. #TOPWorkshop Java 8 -12 0 1 2 3 4 5 6 7 04.1.1 - JEP 318: Epsilon GC 04 ● A non-collecting garbage collector ● When memory is exhausted JVM will exit ○ OutOfMemoryExpection ○ Heap dump ● Useful for ○ GC algorithm testing ○ Memory pressure testing ○ Short-lived latency sensitive tasks
  • 36. #TOPWorkshop Java 8 -12 0 1 2 3 4 5 6 7 04.1.2 - JEP 321: HTTP Client 04 ● Incubator module for HTTP/2 support ○ java.net.http module and package ■ HttpClient ■ HttpRequest ■ HttpResponse ■ WebSocket ○ Synchronous and asynchronous
  • 37. #TOPWorkshop Java 8 -12 0 1 2 3 4 5 6 7 04.1.3 - JEP 323: Extend Local-Variable Syntax 04 ● list.stream().map(s -> s.toString()) ● list.stream().map((var s) -> s.toString()) ● list.stream().map((@Notnull var s) -> s.toString())
  • 38. #TOPWorkshop Java 8 -12 0 1 2 3 4 5 6 7 04.1.4 - JEP 327: Unicode 10 Support 04 ● 8_518 new characters ○ Bitcoin symbol ○ Nishu ○ Soyombo, Zanabazar Square ● Colbert emoji
  • 39. #TOPWorkshop Java 8 -12 0 1 2 3 4 5 6 7 04.1.5 - JEP 330: Launch Single File Source Code 04 ● In JDK 10 Three modes for the Java launcher ○ Launch a class file ○ Launch the main class of a JAR file ○ Launch the main class of a module ● Since JDK 11 ○ launch a class declared in a source file ■ $ java TopWorkshop.java arg1 argN ○ single file source code shebang ■ #!$JAVA_HOME/bin/java --source 11 ■ $ ./TopWorkshop arg1 argN
  • 40. #TOPWorkshop Java 8 -12 0 1 2 3 4 5 6 7 04.1.6 - Other JEPs ● JEP 315: Improve Aarch64 intrinsics ● JEP 324: Ket Agreement with Curve25519 and Curve448 ● JEP 329: ChaCha20 and Poly1305 Cryptographic Algorithms ● JEP 331: Low-Overhead HEap Profiling ● JEP 332: Transport Layer Security 1.3 ● JEP 333: ZGC ● JEP 335: Deprecate the Nashorn JavaScript Engine ● JEP 336: Deprecate the Pack200 Tools and API 04
  • 41. #TOPWorkshop Java 8 -12 0 1 2 3 4 5 6 7 ● New I/O methods ○ InputStream nullInputStream() ○ OutputStream nullOutputStream() ○ Reader nullReader() ○ Writer nullWriter() ● Optional ○ boolean isEmpty() ● Predicate ○ Predicate not(Predicate) ● Character ○ toString(int) 04 04.1.7 - New API
  • 42. #TOPWorkshop Java 8 -12 0 1 2 3 4 5 6 7 04.5 ● New String methods ○ inBlack() ○ Stream lines() ○ String repeat() ○ String strip() ○ String stripLeading() ○ String stripTrailing() 04.1.7 - New API
  • 43. #TOPWorkshop Java 8 - 12 0 1 2 3 4 5 6 7 05 HighlightsJDK12 05.2 - JEP 325: Switch Expressions 05.1 - JEPs 05.3 - JEP 326: Raw string literals
  • 44. #TOPWorkshop Java 8 -12 0 1 2 3 4 5 6 7 05.1 - JEPs ● 189: Shenandoah: A Low-Pause-Time Garbage Collector (Experimental) ● 230: Microbenchmark Suite ● 325: Switch Expressions (Preview) ● 334: JVM Constants API ● 340: One AArch64 Port, Not Two ● 341: Default CDS Archives ● 344: Abortable Mixed Collections for G1 ● 346: Promptly Return Unused Committed Memory from G1 05.1
  • 45. #TOPWorkshop Java 8 -12 0 1 2 3 4 5 6 7 05.2 - JEP 325: Switch Expressions T result = switch (arg) { case L1, L2 -> e1; case L3 -> e2; default -> e3; }; 05.2
  • 46. #TOPWorkshop Java 8 -12 0 1 2 3 4 5 6 7 05.3 - JEP 326: Raw string literals var daysInAWeekStr = "Days in a week n" + "tttSundayn" + "tttMondayn" + "tttTuesdayn" + "tttWednesdayn" + "tttThursdayn" + "tttFridayn" + "tttSaturdayn"; var daysInAWeekStr = `Days in a week Sunday Monday Tuesday Wednesday Thursday Friday Saturday`.align(); 05.3
  • 47. #TOPWorkshop Java 8 - 12 0 1 2 3 4 5 6 7 06 OpenJDkProjects 06.2 - Loom: continuations and fibers 06.1 - Amber: rightsizing language ceremony 06.3 - Panama: foreign-function/data interface 06.4 - Valhalla: value types and specialized generics
  • 48. #TOPWorkshop Java 8 -12 0 1 2 3 4 5 6 7 06.1 - Project Amber ● JEP 286 Local-Variable Type Inference (var) (JDK 10) ● JEP 301 Enhanced Enums ● JEP 305 Pattern Matching ● JEP 323 Local-Variable Syntax for Lambda Parameters (JDK 11) ● JEP 325 Switch Expressions (preview, JDK 12) ● JEP 326 Raw String Literals ● JEP 348 Java Compiler Intrinsics for JDK APIs 06.1
  • 49. #TOPWorkshop Java 8 -12 0 1 2 3 4 5 6 7 06.1 - Project Amber final class Point { public final int x; public final int y; public Point(int x, int y) { this.x = x; this.y = y; } // state-based implementations of equals, hashCode, toString // nothing else record Point(int x, int y); 06.1
  • 50. #TOPWorkshop Java 8 -12 0 1 2 3 4 5 6 7 06.2 - Project Loom “The goal of this Project is to explore and incubate Java VM features and APIs built on top of them for the implementation of lightweight user-mode threads (fibers), delimited continuations (of some form), and related features, such as explicit tail-call.” - OpenJDK 06.2
  • 52. #TOPWorkshop Java 8 -12 0 1 2 3 4 5 6 7 06.3 - Project Panama ● native function calling from JVM (C, C++), specifically per JEP 191 ○ jextract tool ● native data access from JVM or inside JVM heap ● new data layouts in JVM heap ● native metadata definition for JVM ● header file API extraction tools (see below) ● native library management APIs ● native-oriented interpreter and runtime “hooks” ● class and method resolution “hooks” ● native-oriented JIT optimizations ● tooling or wrapper interposition for safety ● exploratory work with difficult-to-integrate native libraries 06.3
  • 53. #TOPWorkshop Java 8 -12 0 1 2 3 4 5 6 7 06.4 - Project Valhalla ● Value Types ● Generic Specialization ● And possibly other related topics 06.4
  • 54. #TOPWorkshop Java 8 -12 0 1 2 3 4 5 6 7 (c) @mreinhold 06.4 - Project Valhalla 06.4
  • 55. #TOPWorkshop Java 8 - 12 0 1 2 3 4 5 6 7 Q&A 07 - Questions? 07