Quoi d'9, JAVA 9 ?

Preview:

Citation preview

Quoi d’9 Java9 ?

Présenté par Jean-François SavardNovembre 2016

Nouveautés

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/

savardjf
Accès prématuré aux builds, code source disponible sur le site d'openjdk
savardjf
possibilité de s'abonner au mailing list
savardjf
La publication sera ajouté sur le site du javawave qui sera publié prochainement sur la page linkedin - tous les liens pourront y être récupéré

Horaire• Quelques changements• Présentation d’outils• Les bonbons• Nouveautés du langages• Jigsaw• Questions

5

Changements à considérer

6

Mise en contexte: survol des APIs• Les standards JCP

• Les APIs spécifique au JDK

• Les APIs non-supportés

7

JEP-260: Encapsulation d’APIs interne• APIs interne non-critique

• APIs interne critique

• APIs interne critique sans alternative

• Pas de panique!

savardjf
APIs interne non-critique seront encapsulé
savardjf
APIs interne critique seront encapsulé si une alternative est connu
savardjf
APIs interne critique sans alternative seront @Deprecated et retiré dans Java 10
savardjf
Une alternative prévu: passer un flag en ligne de commande pour pouvoir utiliser votre sun.misc.unsafe

8

Restructuration du JDK

JDK 8: JDK 9:

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

savardjf
Enfin des méthodes @Deprecated enlevés. Il y a peu de chances que vous utilisez une de ces méthodes, mais si c'est le cas sachez qu'elles n'existeront plus dans Java9

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)

11

Présentation d’outils

12

JShell• Enfin un REPL pour Java!

• Buts visés

• P’tite démo!

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

14

jdeps• Vérifier l’usage d’API internes• Amélioré dans Java9• Utilisation très simple

15

jdeps

16

Les bonbons

17

Instanciation de collections

18

Collectors.flatMapping

19

Collectors.filtering

20

Optional.ifPresentOrElse

21

Objects.requireNonNullElse

22

Présentation des nouveautés du

langage

23

@SafeVargs• Anciennes spécifications :

• Nouvelles spécifications :

24

try-with-resources

25

Retaille des diamants• Types non-denotable

• Diamond operator dans les classes anonymes

• Changement au niveau de la JVM

26

Enlever _ des identifiants légals• Java8• Java9• Futures possibilités• Partial diamond• « Don’t care » parameter

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

28

Amélioration de @Deprecated

29

jdeprscan

30

Strings• Changements à l’interne

• Meilleur gestion de la mémoire

• StringConcatFactory

31

Nouveau scheme de version• Le « 1. » dans « 1.9 » disparait.

32

Refonte de l’inférence de type

33

Bref aperçu de la programmation

modulaire

34

Pourquoi la modularité?• Petits appareils

• Sécurité

• Performance

• Maintenance

35

JDK avant

36

JDK après

Qu’est-ce qu’un module?• Module = package• module-info.java• requires• exports• requires transitive• Mot-clé : « read »• public != accessible

38

module-info.java

savardjf
Juste histoire de vous teaser, voici un exemple de code java qui compile avec Jigsaw.

39

jlink• Demo!

savardjf
Et une p'tite démo pour vous montrer quelques possibilités avec jlink...
savardjf
En espérant que vous ayez apprécié, on a besoin que vous parliez du java wave pour la prochaine conférence sur jigsaw!

Recommended