quoi d'9, java 9 ?
TRANSCRIPT
![Page 1: Quoi d'9, JAVA 9 ?](https://reader034.vdocuments.site/reader034/viewer/2022050806/589b27221a28ab2d4c8b54f5/html5/thumbnails/1.jpg)
Quoi d’9 Java9 ?
Présenté par Jean-François SavardNovembre 2016
![Page 2: Quoi d'9, JAVA 9 ?](https://reader034.vdocuments.site/reader034/viewer/2022050806/589b27221a28ab2d4c8b54f5/html5/thumbnails/2.jpg)
Nouveautés
![Page 3: Quoi d'9, JAVA 9 ?](https://reader034.vdocuments.site/reader034/viewer/2022050806/589b27221a28ab2d4c8b54f5/html5/thumbnails/3.jpg)
Informations générales
- Date prévu pour le 27 Juillet 2017- Accès prématuré : https://jdk9.java.net/- Accès prématuré avec Jigsaw : https://jdk9.java.net/jigsaw- Code source : http://hg.openjdk.java.net/jdk9/dev/- Mailing list : http://mail.openjdk.java.net/mailman/listinfo/jdk9-dev- Informations : http://openjdk.java.net/projects/jdk9/
![Page 4: Quoi d'9, JAVA 9 ?](https://reader034.vdocuments.site/reader034/viewer/2022050806/589b27221a28ab2d4c8b54f5/html5/thumbnails/4.jpg)
Horaire• Quelques changements• Présentation d’outils• Les bonbons• Nouveautés du langages• Jigsaw• Questions
![Page 5: Quoi d'9, JAVA 9 ?](https://reader034.vdocuments.site/reader034/viewer/2022050806/589b27221a28ab2d4c8b54f5/html5/thumbnails/5.jpg)
5
Changements à considérer
![Page 6: Quoi d'9, JAVA 9 ?](https://reader034.vdocuments.site/reader034/viewer/2022050806/589b27221a28ab2d4c8b54f5/html5/thumbnails/6.jpg)
6
Mise en contexte: survol des APIs• Les standards JCP
• Les APIs spécifique au JDK
• Les APIs non-supportés
![Page 7: Quoi d'9, JAVA 9 ?](https://reader034.vdocuments.site/reader034/viewer/2022050806/589b27221a28ab2d4c8b54f5/html5/thumbnails/7.jpg)
7
JEP-260: Encapsulation d’APIs interne• APIs interne non-critique
• APIs interne critique
• APIs interne critique sans alternative
• Pas de panique!
![Page 8: Quoi d'9, JAVA 9 ?](https://reader034.vdocuments.site/reader034/viewer/2022050806/589b27221a28ab2d4c8b54f5/html5/thumbnails/8.jpg)
8
Restructuration du JDK
JDK 8: JDK 9:
![Page 9: Quoi d'9, JAVA 9 ?](https://reader034.vdocuments.site/reader034/viewer/2022050806/589b27221a28ab2d4c8b54f5/html5/thumbnails/9.jpg)
9
Méthodes @Deprecated enlevés• java.util.logging.LogManager::addPropertyChangeListener• java.util.logging.LogManager::removePropertyChangeListener• java.util.jar.Pack200.Packer::addPropertyChangeListener• java.util.jar.Pack200.Packer::removePropertyChangeListener• java.util.jar.Pack200.Unpacker::addPropertyChangeListener• java.util.jar.Pack200.Unpacker::removePropertyChangeListener
![Page 10: Quoi d'9, JAVA 9 ?](https://reader034.vdocuments.site/reader034/viewer/2022050806/589b27221a28ab2d4c8b54f5/html5/thumbnails/10.jpg)
10
Modules partagés avec JavaEE non résolu par défaut• java.corba• java.transaction• java.annotations.common• java.activation• java.xml.ws (JAX-WS)• java.xml.bind (JAXB)
![Page 11: Quoi d'9, JAVA 9 ?](https://reader034.vdocuments.site/reader034/viewer/2022050806/589b27221a28ab2d4c8b54f5/html5/thumbnails/11.jpg)
11
Présentation d’outils
![Page 12: Quoi d'9, JAVA 9 ?](https://reader034.vdocuments.site/reader034/viewer/2022050806/589b27221a28ab2d4c8b54f5/html5/thumbnails/12.jpg)
12
JShell• Enfin un REPL pour Java!
• Buts visés
• P’tite démo!
![Page 13: Quoi d'9, JAVA 9 ?](https://reader034.vdocuments.site/reader034/viewer/2022050806/589b27221a28ab2d4c8b54f5/html5/thumbnails/13.jpg)
13
JavaDoc• Support du HTML5• Possibilité de recherche• HTML4 par défaut• P’tite démo!
Pour plus d’informations : http://openjdk.java.net/jeps/224
![Page 14: Quoi d'9, JAVA 9 ?](https://reader034.vdocuments.site/reader034/viewer/2022050806/589b27221a28ab2d4c8b54f5/html5/thumbnails/14.jpg)
14
jdeps• Vérifier l’usage d’API internes• Amélioré dans Java9• Utilisation très simple
![Page 15: Quoi d'9, JAVA 9 ?](https://reader034.vdocuments.site/reader034/viewer/2022050806/589b27221a28ab2d4c8b54f5/html5/thumbnails/15.jpg)
15
jdeps
![Page 16: Quoi d'9, JAVA 9 ?](https://reader034.vdocuments.site/reader034/viewer/2022050806/589b27221a28ab2d4c8b54f5/html5/thumbnails/16.jpg)
16
Les bonbons
![Page 17: Quoi d'9, JAVA 9 ?](https://reader034.vdocuments.site/reader034/viewer/2022050806/589b27221a28ab2d4c8b54f5/html5/thumbnails/17.jpg)
17
Instanciation de collections
![Page 18: Quoi d'9, JAVA 9 ?](https://reader034.vdocuments.site/reader034/viewer/2022050806/589b27221a28ab2d4c8b54f5/html5/thumbnails/18.jpg)
18
Collectors.flatMapping
![Page 19: Quoi d'9, JAVA 9 ?](https://reader034.vdocuments.site/reader034/viewer/2022050806/589b27221a28ab2d4c8b54f5/html5/thumbnails/19.jpg)
19
Collectors.filtering
![Page 20: Quoi d'9, JAVA 9 ?](https://reader034.vdocuments.site/reader034/viewer/2022050806/589b27221a28ab2d4c8b54f5/html5/thumbnails/20.jpg)
20
Optional.ifPresentOrElse
![Page 21: Quoi d'9, JAVA 9 ?](https://reader034.vdocuments.site/reader034/viewer/2022050806/589b27221a28ab2d4c8b54f5/html5/thumbnails/21.jpg)
21
Objects.requireNonNullElse
![Page 22: Quoi d'9, JAVA 9 ?](https://reader034.vdocuments.site/reader034/viewer/2022050806/589b27221a28ab2d4c8b54f5/html5/thumbnails/22.jpg)
22
Présentation des nouveautés du
langage
![Page 23: Quoi d'9, JAVA 9 ?](https://reader034.vdocuments.site/reader034/viewer/2022050806/589b27221a28ab2d4c8b54f5/html5/thumbnails/23.jpg)
23
@SafeVargs• Anciennes spécifications :
• Nouvelles spécifications :
![Page 24: Quoi d'9, JAVA 9 ?](https://reader034.vdocuments.site/reader034/viewer/2022050806/589b27221a28ab2d4c8b54f5/html5/thumbnails/24.jpg)
24
try-with-resources
![Page 25: Quoi d'9, JAVA 9 ?](https://reader034.vdocuments.site/reader034/viewer/2022050806/589b27221a28ab2d4c8b54f5/html5/thumbnails/25.jpg)
25
Retaille des diamants• Types non-denotable
• Diamond operator dans les classes anonymes
• Changement au niveau de la JVM
![Page 26: Quoi d'9, JAVA 9 ?](https://reader034.vdocuments.site/reader034/viewer/2022050806/589b27221a28ab2d4c8b54f5/html5/thumbnails/26.jpg)
26
Enlever _ des identifiants légals• Java8• Java9• Futures possibilités• Partial diamond• « Don’t care » parameter
![Page 27: Quoi d'9, JAVA 9 ?](https://reader034.vdocuments.site/reader034/viewer/2022050806/589b27221a28ab2d4c8b54f5/html5/thumbnails/27.jpg)
27
Méthodes privées dans les interfaces• Oublié dans Java8
• Allège le code des interfaces
• Déjà implémenté au niveau de la JVM
![Page 28: Quoi d'9, JAVA 9 ?](https://reader034.vdocuments.site/reader034/viewer/2022050806/589b27221a28ab2d4c8b54f5/html5/thumbnails/28.jpg)
28
Amélioration de @Deprecated
![Page 29: Quoi d'9, JAVA 9 ?](https://reader034.vdocuments.site/reader034/viewer/2022050806/589b27221a28ab2d4c8b54f5/html5/thumbnails/29.jpg)
29
jdeprscan
![Page 30: Quoi d'9, JAVA 9 ?](https://reader034.vdocuments.site/reader034/viewer/2022050806/589b27221a28ab2d4c8b54f5/html5/thumbnails/30.jpg)
30
Strings• Changements à l’interne
• Meilleur gestion de la mémoire
• StringConcatFactory
![Page 31: Quoi d'9, JAVA 9 ?](https://reader034.vdocuments.site/reader034/viewer/2022050806/589b27221a28ab2d4c8b54f5/html5/thumbnails/31.jpg)
31
Nouveau scheme de version• Le « 1. » dans « 1.9 » disparait.
![Page 32: Quoi d'9, JAVA 9 ?](https://reader034.vdocuments.site/reader034/viewer/2022050806/589b27221a28ab2d4c8b54f5/html5/thumbnails/32.jpg)
32
Refonte de l’inférence de type
![Page 33: Quoi d'9, JAVA 9 ?](https://reader034.vdocuments.site/reader034/viewer/2022050806/589b27221a28ab2d4c8b54f5/html5/thumbnails/33.jpg)
33
Bref aperçu de la programmation
modulaire
![Page 34: Quoi d'9, JAVA 9 ?](https://reader034.vdocuments.site/reader034/viewer/2022050806/589b27221a28ab2d4c8b54f5/html5/thumbnails/34.jpg)
34
Pourquoi la modularité?• Petits appareils
• Sécurité
• Performance
• Maintenance
![Page 35: Quoi d'9, JAVA 9 ?](https://reader034.vdocuments.site/reader034/viewer/2022050806/589b27221a28ab2d4c8b54f5/html5/thumbnails/35.jpg)
35
JDK avant
![Page 36: Quoi d'9, JAVA 9 ?](https://reader034.vdocuments.site/reader034/viewer/2022050806/589b27221a28ab2d4c8b54f5/html5/thumbnails/36.jpg)
36
JDK après
![Page 37: Quoi d'9, JAVA 9 ?](https://reader034.vdocuments.site/reader034/viewer/2022050806/589b27221a28ab2d4c8b54f5/html5/thumbnails/37.jpg)
Qu’est-ce qu’un module?• Module = package• module-info.java• requires• exports• requires transitive• Mot-clé : « read »• public != accessible
![Page 38: Quoi d'9, JAVA 9 ?](https://reader034.vdocuments.site/reader034/viewer/2022050806/589b27221a28ab2d4c8b54f5/html5/thumbnails/38.jpg)
38
module-info.java
![Page 39: Quoi d'9, JAVA 9 ?](https://reader034.vdocuments.site/reader034/viewer/2022050806/589b27221a28ab2d4c8b54f5/html5/thumbnails/39.jpg)
39
jlink• Demo!
![Page 40: Quoi d'9, JAVA 9 ?](https://reader034.vdocuments.site/reader034/viewer/2022050806/589b27221a28ab2d4c8b54f5/html5/thumbnails/40.jpg)