SlideShare une entreprise Scribd logo
JAVA 8
FRIKHA Mohamed Saïd
BEN HADJ Gassen
YAHYAOUI Feten
PLAN
1. Présentation et Historique
2. Les nouveaux concepts de Java 8
3. Conclusion
Présentation et Historique
LA NAISSANCE DE JAVA
o Java est un langage conçu au début des années 90, une
époque ou trois langages se partagent le marché du
développement des applications d’entreprise : le C, le C++ et
le Cobol.
o Java a su apprendre des problèmes posés par le C++, et
chercher à les résoudre. Ainsi près de 70% des bugs des
applications C et C++ ont disparu.
JAVA 6
o Depuis Java 2, sorti en décembre 1998, Sun Microsystems
avait réussi à maintenir un rythme de sortie d’une version
majeure tous les deux ans.
o Et de fait, Java 6 a été publié en 2006:
Propose des évolutions de ses API
Une nouvelle JVM plus performante que la précédente
Propose une stabilisation des nouveautés, des améliorations de
performance.
Java 7
o Suite au situation financière très critique que Sun
Microsystems l’a reconnue, Java 7 n’a est publié que juillet
2011.
o Une version qui a eu du mal à convaincre le public:
Fonctionnellement étriquée
Apache Lucene, moteur de recherche Open source, ne fonctionne plus
Des problèmes de sécurité.
JAVA 8
• Mais avec Java 8, publier en 2014, Java a fait une révolution
puisque aucune autre version n’aura apporté autant de
nouveautés et d’avancées fonctionnelles permet une écriture
du code grandement facilitée et des performances nettement
améliorées.
Les nouveaux concepts de Java 8
DU POINT DE VUE TECHNIQUE
o Du point de vue purement technique, la principale nouveauté
est bien sûr l’arrivée des expressions lambda (une expression
qui facilite la programmation fonctionnelle et simplifie
beaucoup le développement).
DU POINT DE VUE CONCEPT
o Du point de vue des concepts:
La première grande évolution est l’arrivée d’une nouvelle API,
nommée stream, qui opère dans le domaine du traitement des
données.
Le second concept important concerne la programmation
asynchrone. Java 8 introduit un nouveau jeu d’interfaces et de
classes dans le domaine de la programmation concurrente,
dédié au lancement de tâches asynchrones.
1. Lambda
o Les expressions lambda sont introduites en Java 8 et sont réputés
pour être la plus grande caractéristique de Java 8.
o Cette technique de programmation se traduit par une nouvelle
syntaxe introduite dans le langage et un nouveau mode d’exécution
pour le code porté par une expression lambda qui permet d’écrire
simplement du code complexé lui apporte ainsi plus de lisibilité et de
maintenabilité.
o Syntaxe de lambda experssion:
paramètre -> corps d'expression
1. Lambda
1. Lambda
o Les caractéristiques importante d'une expression lambda :
Zéro, un ou plusieurs paramètres :
 () -> {return 45}
 (int a, int b, ……, n) ->{do something }
1. Lambda
Une déclaration de type facultatif: Pas besoin de déclarer le type d'un
paramètre. Le compilateur peut même s'inférence à partir de la valeur
entre paramètre
Parenthèses en option autour du paramètre: Dans le cas d’un seul
paramètre pas besoin de le mettre entre parenthèses. Pour des
paramètres multiples, les parenthèses sont requises.
2. STREAMS
o Stream est une nouvelle couche abstraite introduite dans Java
8. Une utilisation de flux, qui vous permet de traiter les
données d'une manière déclarative similaire à des instructions
SQL.
o Exemple d'instruction SQL en JAVA:
max SELECT (salaire), employee_id, EMPLOYEE_NAME de l'employé
2. STREAMS
o Autre préoccupation concerne l'efficacité : Pour exécuter le
programme sur les processeurs multi-core, un développeur
Java doit écrire le traitement de code parallèle qui peut être
assez d'erreurs.
o Et pour résoudre ces problèmes, Java 8 introduit le concept de
flux qui permet au développeur de traiter les données
déclaratives et utiliser l'architecture multicœur sans le besoin
d'écrire un code spécifique pour cela.
2. STREAMS
A. Fonctionnement intermédiaire (stateless)
 filter(predicate)
 map (p -> p.getName())
 sorted ()
B. Fonctionnement Terminal (stateful)
 forEach (name ->
System.out.println(name))
3. Default Methods
• Permettent d'ajouter des nouvelles fonctionnalités à des
interfaces sans casser les classes qui implémente ces
interfaces.
3. Default Methods
 Ce Code montre la Classe MyClass
implémente la méthode
SaySomething() de L’InterfaceA.
 Si on veut ajouter à L’InterfaceA une
methode SayHi() , nous allons être
face a un problème de
Compilation, cas on doit
Implémenter cette nouvelle
méthode aussi .
3. Default Methods
 En ajoutant le Mot-Clé Default avant le
modificateur d’accès, nous allons pas
être obliger d’implémenter la méthode
SayHi() dans MyClass .
 Notez que nous devons
fournir l’implémentation de
toutes les méthodes qui utilise
le Mot-Clé Default.
4. API DATE-TIME
o Avec Java 8, une nouvelle API Date-Time est introduit pour
couvrir les inconvénients suivants de l'ancienne API:
Le non thread-safe:
 java.util.Date n’est pas capable de fonctionner correctement
lorsqu'il est exécuté simultanément au sein du même espace
d'adressage par plusieurs threads.
 La nouvelle API date-time est immuable et ne dispose pas des
méthodes setter.
4. API DATE-TIME
Une mauvaise conception: La date par défaut commence à partir
de 1900, le mois commence à partir de 1, et le jour commence à
partir de 0, donc pas d'uniformité.
Difficulté à la manipulation de fuseau horaire: Les développeurs
devaient écrire beaucoup de code pour traiter des questions de
fuseau horaire.
4. API DATE-TIME
o Java 8 introduit cette nouvelle API sous le paquet java.time:
Local: Simplifie l’API date-time sans complexité de manipulation
de fuseau horaire.
Zonée: Spécialise l’API date-time de traiter des divers fuseaux
horaires.
5. MOTEUR JAVASCRIPT NASHORN
o Avec Java 8, Nashorn, un moteur JavaScript amélioré
beaucoup est introduit, pour remplacer le Rhino existant.
o Nashorn fournit des performances 2 à 10 fois plus mieux, car il
compile directement le code en mémoire et passe le bytecode
au JVM.
Conclusion
JAVA 9 EN COUR
o Java 8 est arrivé il y a peu, il faudra encore quelques années
pour que les projets prennent cette version en compte.
o Mais le groupe java ont commencer à développer le java 9 et
des nouveaux concepts sont en cour de construction.
LES FUTURES CONCEPTS
o Parmi ces concepts en cite: La modularité :
 Une application donnée ne sera plus polluée par des classes
qu’elle n’utilise pas.
 Par exemple une application web qui utilise les API XML, mais
n’utilise pas Swing n’aura plus besoin de dépendre de ces classes.
 Cela a comme conséquence que l’empreinte mémoire d’une petite
application Java va grandement diminuer et de même que son
temps initial de chargement.
Merci Pour Votre Attention

Contenu connexe

PPTX
Java 8 presentation
PPTX
Spring boot
PPTX
PDF
Spring I/O 2012: Natural Templating in Spring MVC with Thymeleaf
PDF
Spring boot jpa
PDF
Lambda Expressions in Java
PPTX
Spring boot
PDF
Hibernate Presentation
Java 8 presentation
Spring boot
Spring I/O 2012: Natural Templating in Spring MVC with Thymeleaf
Spring boot jpa
Lambda Expressions in Java
Spring boot
Hibernate Presentation

Tendances (20)

PPT
Java static keyword
PPTX
Introduction à spring boot
PPT
Java Programming for Designers
PPTX
Spring data jpa
PDF
PUC SE Day 2019 - SpringBoot
PDF
Java 8 - collections et stream
PDF
React - Introdução
PDF
Introduction to Java 11
PDF
Java Collection framework
PPSX
Spring - Part 1 - IoC, Di and Beans
PPTX
swings.pptx
PPTX
Inheritance
PPTX
Java 8 Lambda and Streams
PDF
Java 8 Lambda Expressions
PPTX
JavaScript Promises
PDF
Nouveautés Java 9-10-11
PPT
Introduction to Java Programming, Basic Structure, variables Data type, input...
PPTX
Spring Boot
PPTX
Nouveautés de java 8
PPTX
cours javascript.pptx
Java static keyword
Introduction à spring boot
Java Programming for Designers
Spring data jpa
PUC SE Day 2019 - SpringBoot
Java 8 - collections et stream
React - Introdução
Introduction to Java 11
Java Collection framework
Spring - Part 1 - IoC, Di and Beans
swings.pptx
Inheritance
Java 8 Lambda and Streams
Java 8 Lambda Expressions
JavaScript Promises
Nouveautés Java 9-10-11
Introduction to Java Programming, Basic Structure, variables Data type, input...
Spring Boot
Nouveautés de java 8
cours javascript.pptx
Publicité

En vedette (20)

PPTX
La loi de l’information, fichier et liberté
PPTX
Pollution in Tunisia
DOC
Gobiernos union liberal
PDF
Manual balay lavadora 3 ts885x
PDF
lavavajillas Teka LP7 811
PDF
Manual bosch combi blanco kgn39 aw32
PDF
Manual bosch combi kgn39 ai20
PDF
Scripto sensu e post
DOCX
Reinadode Isabel II. Bienio progresista.
PDF
Manual Balay - campana 3 bi798
PDF
Manual bosch campana a pared dwk09 m720
PDF
Manual bosch campana dww098 u50
PPTX
Audacity
PPTX
Powerpoint gimp
PDF
Manual bosch horno independiente hba43 s451e
PPTX
La france d’outre mer
PDF
Manual balay - cocina 3 cgb462bt
PDF
MBA comportamiento del consumidor LUIS AREVALO
PPT
Présentation Bio pour tous
La loi de l’information, fichier et liberté
Pollution in Tunisia
Gobiernos union liberal
Manual balay lavadora 3 ts885x
lavavajillas Teka LP7 811
Manual bosch combi blanco kgn39 aw32
Manual bosch combi kgn39 ai20
Scripto sensu e post
Reinadode Isabel II. Bienio progresista.
Manual Balay - campana 3 bi798
Manual bosch campana a pared dwk09 m720
Manual bosch campana dww098 u50
Audacity
Powerpoint gimp
Manual bosch horno independiente hba43 s451e
La france d’outre mer
Manual balay - cocina 3 cgb462bt
MBA comportamiento del consumidor LUIS AREVALO
Présentation Bio pour tous
Publicité

Similaire à JAVA 8 (20)

PPTX
Back to the future of java (from 8 to 11 and beyond)
PDF
devoxx 2022 - 10 ans de Devoxx FR et de Java.pdf
PDF
Apres java 8, java 9 et 10 - BreizhCamp 2018
PDF
Geek Time Janvier 2017 : Java 8
PDF
Framework Spring_ In!!!!!!!troduction.pdf
PPTX
Quoi d'9, JAVA 9 ?
PPTX
Quoi d'9, JAVA 9 ?
PDF
Voxxeddays lux 2018 apres java 8, java 9 et 10
PPTX
C# 5 versus Java 8... Quand C++ 11 s'invite à la fête
PDF
Javaday Paris 2022 - Java en 2022 : profiter de Java 17
PDF
Java 9 modulo les modules devoxx fr 2017
PDF
Lyon JUG 2018 - Java le changement c'est maintenant
PPTX
Java - Support etudiant - Tronc Commun Deuxième année ISIMA - 2018
PDF
JAVA Chapitre1
PDF
Nantes jug 2018 - Java le changement c'est maintenant
PDF
201303 - Java8
PPTX
Java 11 to 17 : What's new !?
PPTX
JAVA8, créer votre future
PPT
XB-Java.ppt
PPT
Java programmation OO, héritage et polymorphisme
Back to the future of java (from 8 to 11 and beyond)
devoxx 2022 - 10 ans de Devoxx FR et de Java.pdf
Apres java 8, java 9 et 10 - BreizhCamp 2018
Geek Time Janvier 2017 : Java 8
Framework Spring_ In!!!!!!!troduction.pdf
Quoi d'9, JAVA 9 ?
Quoi d'9, JAVA 9 ?
Voxxeddays lux 2018 apres java 8, java 9 et 10
C# 5 versus Java 8... Quand C++ 11 s'invite à la fête
Javaday Paris 2022 - Java en 2022 : profiter de Java 17
Java 9 modulo les modules devoxx fr 2017
Lyon JUG 2018 - Java le changement c'est maintenant
Java - Support etudiant - Tronc Commun Deuxième année ISIMA - 2018
JAVA Chapitre1
Nantes jug 2018 - Java le changement c'est maintenant
201303 - Java8
Java 11 to 17 : What's new !?
JAVA8, créer votre future
XB-Java.ppt
Java programmation OO, héritage et polymorphisme

JAVA 8

  • 1. JAVA 8 FRIKHA Mohamed Saïd BEN HADJ Gassen YAHYAOUI Feten
  • 2. PLAN 1. Présentation et Historique 2. Les nouveaux concepts de Java 8 3. Conclusion
  • 4. LA NAISSANCE DE JAVA o Java est un langage conçu au début des années 90, une époque ou trois langages se partagent le marché du développement des applications d’entreprise : le C, le C++ et le Cobol. o Java a su apprendre des problèmes posés par le C++, et chercher à les résoudre. Ainsi près de 70% des bugs des applications C et C++ ont disparu.
  • 5. JAVA 6 o Depuis Java 2, sorti en décembre 1998, Sun Microsystems avait réussi à maintenir un rythme de sortie d’une version majeure tous les deux ans. o Et de fait, Java 6 a été publié en 2006: Propose des évolutions de ses API Une nouvelle JVM plus performante que la précédente Propose une stabilisation des nouveautés, des améliorations de performance.
  • 6. Java 7 o Suite au situation financière très critique que Sun Microsystems l’a reconnue, Java 7 n’a est publié que juillet 2011. o Une version qui a eu du mal à convaincre le public: Fonctionnellement étriquée Apache Lucene, moteur de recherche Open source, ne fonctionne plus Des problèmes de sécurité.
  • 7. JAVA 8 • Mais avec Java 8, publier en 2014, Java a fait une révolution puisque aucune autre version n’aura apporté autant de nouveautés et d’avancées fonctionnelles permet une écriture du code grandement facilitée et des performances nettement améliorées.
  • 9. DU POINT DE VUE TECHNIQUE o Du point de vue purement technique, la principale nouveauté est bien sûr l’arrivée des expressions lambda (une expression qui facilite la programmation fonctionnelle et simplifie beaucoup le développement).
  • 10. DU POINT DE VUE CONCEPT o Du point de vue des concepts: La première grande évolution est l’arrivée d’une nouvelle API, nommée stream, qui opère dans le domaine du traitement des données. Le second concept important concerne la programmation asynchrone. Java 8 introduit un nouveau jeu d’interfaces et de classes dans le domaine de la programmation concurrente, dédié au lancement de tâches asynchrones.
  • 11. 1. Lambda o Les expressions lambda sont introduites en Java 8 et sont réputés pour être la plus grande caractéristique de Java 8. o Cette technique de programmation se traduit par une nouvelle syntaxe introduite dans le langage et un nouveau mode d’exécution pour le code porté par une expression lambda qui permet d’écrire simplement du code complexé lui apporte ainsi plus de lisibilité et de maintenabilité. o Syntaxe de lambda experssion: paramètre -> corps d'expression
  • 13. 1. Lambda o Les caractéristiques importante d'une expression lambda : Zéro, un ou plusieurs paramètres :  () -> {return 45}  (int a, int b, ……, n) ->{do something }
  • 14. 1. Lambda Une déclaration de type facultatif: Pas besoin de déclarer le type d'un paramètre. Le compilateur peut même s'inférence à partir de la valeur entre paramètre Parenthèses en option autour du paramètre: Dans le cas d’un seul paramètre pas besoin de le mettre entre parenthèses. Pour des paramètres multiples, les parenthèses sont requises.
  • 15. 2. STREAMS o Stream est une nouvelle couche abstraite introduite dans Java 8. Une utilisation de flux, qui vous permet de traiter les données d'une manière déclarative similaire à des instructions SQL. o Exemple d'instruction SQL en JAVA: max SELECT (salaire), employee_id, EMPLOYEE_NAME de l'employé
  • 16. 2. STREAMS o Autre préoccupation concerne l'efficacité : Pour exécuter le programme sur les processeurs multi-core, un développeur Java doit écrire le traitement de code parallèle qui peut être assez d'erreurs. o Et pour résoudre ces problèmes, Java 8 introduit le concept de flux qui permet au développeur de traiter les données déclaratives et utiliser l'architecture multicœur sans le besoin d'écrire un code spécifique pour cela.
  • 17. 2. STREAMS A. Fonctionnement intermédiaire (stateless)  filter(predicate)  map (p -> p.getName())  sorted () B. Fonctionnement Terminal (stateful)  forEach (name -> System.out.println(name))
  • 18. 3. Default Methods • Permettent d'ajouter des nouvelles fonctionnalités à des interfaces sans casser les classes qui implémente ces interfaces.
  • 19. 3. Default Methods  Ce Code montre la Classe MyClass implémente la méthode SaySomething() de L’InterfaceA.  Si on veut ajouter à L’InterfaceA une methode SayHi() , nous allons être face a un problème de Compilation, cas on doit Implémenter cette nouvelle méthode aussi .
  • 20. 3. Default Methods  En ajoutant le Mot-Clé Default avant le modificateur d’accès, nous allons pas être obliger d’implémenter la méthode SayHi() dans MyClass .  Notez que nous devons fournir l’implémentation de toutes les méthodes qui utilise le Mot-Clé Default.
  • 21. 4. API DATE-TIME o Avec Java 8, une nouvelle API Date-Time est introduit pour couvrir les inconvénients suivants de l'ancienne API: Le non thread-safe:  java.util.Date n’est pas capable de fonctionner correctement lorsqu'il est exécuté simultanément au sein du même espace d'adressage par plusieurs threads.  La nouvelle API date-time est immuable et ne dispose pas des méthodes setter.
  • 22. 4. API DATE-TIME Une mauvaise conception: La date par défaut commence à partir de 1900, le mois commence à partir de 1, et le jour commence à partir de 0, donc pas d'uniformité. Difficulté à la manipulation de fuseau horaire: Les développeurs devaient écrire beaucoup de code pour traiter des questions de fuseau horaire.
  • 23. 4. API DATE-TIME o Java 8 introduit cette nouvelle API sous le paquet java.time: Local: Simplifie l’API date-time sans complexité de manipulation de fuseau horaire. Zonée: Spécialise l’API date-time de traiter des divers fuseaux horaires.
  • 24. 5. MOTEUR JAVASCRIPT NASHORN o Avec Java 8, Nashorn, un moteur JavaScript amélioré beaucoup est introduit, pour remplacer le Rhino existant. o Nashorn fournit des performances 2 à 10 fois plus mieux, car il compile directement le code en mémoire et passe le bytecode au JVM.
  • 26. JAVA 9 EN COUR o Java 8 est arrivé il y a peu, il faudra encore quelques années pour que les projets prennent cette version en compte. o Mais le groupe java ont commencer à développer le java 9 et des nouveaux concepts sont en cour de construction.
  • 27. LES FUTURES CONCEPTS o Parmi ces concepts en cite: La modularité :  Une application donnée ne sera plus polluée par des classes qu’elle n’utilise pas.  Par exemple une application web qui utilise les API XML, mais n’utilise pas Swing n’aura plus besoin de dépendre de ces classes.  Cela a comme conséquence que l’empreinte mémoire d’une petite application Java va grandement diminuer et de même que son temps initial de chargement.
  • 28. Merci Pour Votre Attention

Notes de l'éditeur

  • #12: Une expression lambda est caractérisée par la syntaxe suivante.
  • #13: Voilà ce que nous allons normalement faire sans lambda expression et comme vous pouvez le voir ci-dessus, il y a beaucoup de code réutilisable. Il est vraiment pénible création de classes internes anonymes et mettre en œuvre un ensemble beaucoup de ses méthodes. Maintenant permet de réécrire le même code en utilisant l'expression lambda. Donc, comme vous pouvez le voir ici, la lambda expression nous aide à écrire du code très simple et a également aidé supprimé toutes les classes internes anonymes, vous auriez dû créer
  • #16: L'expression SQL ci-dessus renvoie automatiquement les détails de l'employé qui a le salaire maximal.
  • #20: Ce Code montre la Classe MyClass implémente la méthode SaySomething() de L’InterfaceA . Si on veut ajouter à L’InterfaceA une methode SayHi() , nous allons être face a un problème de Compilation , cas on doit Implémenter Cette nouvelle Méthode aussi .
  • #21: En ajoutant le Mot-Clé Default avant le modificateur d’accès, nous allons pas être obliger d’implémenter la méthode SayHi() dans MyClass . Notez que nous devons fournir l’implémentation de toutes les méthodes qui utilise le Mot-Clé Default
  • #24: Voici quelques-unes des classes importantes introduites dans le paquet de java.time