SlideShare une entreprise Scribd logo
1  sur  28
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

Tendances

Embedded linux system development (slides)
Embedded linux system development (slides)Embedded linux system development (slides)
Embedded linux system development (slides)Jaime Barragan
 
Presentation aix basic
Presentation   aix basicPresentation   aix basic
Presentation aix basicxKinAnx
 
alphorm.com - Formation Linux LPIC-1/Comptia Linux+
alphorm.com - Formation Linux LPIC-1/Comptia Linux+alphorm.com - Formation Linux LPIC-1/Comptia Linux+
alphorm.com - Formation Linux LPIC-1/Comptia Linux+Alphorm
 
POO Java Chapitre 3 Collections
POO Java Chapitre 3 CollectionsPOO Java Chapitre 3 Collections
POO Java Chapitre 3 CollectionsMouna Torjmen
 
softCours design pattern m youssfi partie 9 creation des objets abstract fact...
softCours design pattern m youssfi partie 9 creation des objets abstract fact...softCours design pattern m youssfi partie 9 creation des objets abstract fact...
softCours design pattern m youssfi partie 9 creation des objets abstract fact...ENSET, Université Hassan II Casablanca
 
Basic command ppt
Basic command pptBasic command ppt
Basic command pptRohit Kumar
 
alphorm.com - Formation PostgreSQL administration
alphorm.com - Formation PostgreSQL administrationalphorm.com - Formation PostgreSQL administration
alphorm.com - Formation PostgreSQL administrationAlphorm
 
Architecture Of The Linux Kernel
Architecture Of The Linux KernelArchitecture Of The Linux Kernel
Architecture Of The Linux Kernelguest547d74
 
Workshop spring session 2 - La persistance au sein des applications Java
Workshop spring   session 2 - La persistance au sein des applications JavaWorkshop spring   session 2 - La persistance au sein des applications Java
Workshop spring session 2 - La persistance au sein des applications JavaAntoine Rey
 

Tendances (20)

Embedded linux system development (slides)
Embedded linux system development (slides)Embedded linux system development (slides)
Embedded linux system development (slides)
 
Presentation aix basic
Presentation   aix basicPresentation   aix basic
Presentation aix basic
 
alphorm.com - Formation Linux LPIC-1/Comptia Linux+
alphorm.com - Formation Linux LPIC-1/Comptia Linux+alphorm.com - Formation Linux LPIC-1/Comptia Linux+
alphorm.com - Formation Linux LPIC-1/Comptia Linux+
 
Nouveautés Java 9-10-11
Nouveautés Java 9-10-11Nouveautés Java 9-10-11
Nouveautés Java 9-10-11
 
Java 11 to 17 : What's new !?
Java 11 to 17 : What's new !?Java 11 to 17 : What's new !?
Java 11 to 17 : What's new !?
 
Support Java Avancé Troisième Partie
Support Java Avancé Troisième PartieSupport Java Avancé Troisième Partie
Support Java Avancé Troisième Partie
 
POO Java Chapitre 3 Collections
POO Java Chapitre 3 CollectionsPOO Java Chapitre 3 Collections
POO Java Chapitre 3 Collections
 
An Introduction To Linux
An Introduction To LinuxAn Introduction To Linux
An Introduction To Linux
 
softCours design pattern m youssfi partie 9 creation des objets abstract fact...
softCours design pattern m youssfi partie 9 creation des objets abstract fact...softCours design pattern m youssfi partie 9 creation des objets abstract fact...
softCours design pattern m youssfi partie 9 creation des objets abstract fact...
 
Basic command ppt
Basic command pptBasic command ppt
Basic command ppt
 
Jenkins
JenkinsJenkins
Jenkins
 
Support de cours Spring M.youssfi
Support de cours Spring  M.youssfiSupport de cours Spring  M.youssfi
Support de cours Spring M.youssfi
 
alphorm.com - Formation PostgreSQL administration
alphorm.com - Formation PostgreSQL administrationalphorm.com - Formation PostgreSQL administration
alphorm.com - Formation PostgreSQL administration
 
Support distributed computing and caching avec hazelcast
Support distributed computing and caching avec hazelcastSupport distributed computing and caching avec hazelcast
Support distributed computing and caching avec hazelcast
 
Architecture Of The Linux Kernel
Architecture Of The Linux KernelArchitecture Of The Linux Kernel
Architecture Of The Linux Kernel
 
Workshop spring session 2 - La persistance au sein des applications Java
Workshop spring   session 2 - La persistance au sein des applications JavaWorkshop spring   session 2 - La persistance au sein des applications Java
Workshop spring session 2 - La persistance au sein des applications Java
 
Support POO Java Deuxième Partie
Support POO Java Deuxième PartieSupport POO Java Deuxième Partie
Support POO Java Deuxième Partie
 
Traitement distribue en BIg Data - KAFKA Broker and Kafka Streams
Traitement distribue en BIg Data - KAFKA Broker and Kafka StreamsTraitement distribue en BIg Data - KAFKA Broker and Kafka Streams
Traitement distribue en BIg Data - KAFKA Broker and Kafka Streams
 
Introduction JavaEE
Introduction JavaEEIntroduction JavaEE
Introduction JavaEE
 
Support programmation orientée objet c# .net version f8
Support programmation orientée objet c#  .net version f8Support programmation orientée objet c#  .net version f8
Support programmation orientée objet c# .net version f8
 

En vedette

La loi de l’information, fichier et liberté
La loi de l’information, fichier et libertéLa loi de l’information, fichier et liberté
La loi de l’information, fichier et libertéMohamed Saïd Frikha
 
Gobiernos union liberal
Gobiernos union liberalGobiernos union liberal
Gobiernos union liberalLuisRSalas
 
Scripto sensu e post
Scripto sensu e postScripto sensu e post
Scripto sensu e postMaria Franco
 
Reinadode Isabel II. Bienio progresista.
Reinadode Isabel II. Bienio progresista.Reinadode Isabel II. Bienio progresista.
Reinadode Isabel II. Bienio progresista.LuisRSalas
 
Manual bosch horno independiente hba43 s451e
Manual bosch   horno independiente hba43 s451eManual bosch   horno independiente hba43 s451e
Manual bosch horno independiente hba43 s451eAlsako Electrodomésticos
 
La france d’outre mer
La france d’outre merLa france d’outre mer
La france d’outre merSam Wilson
 
MBA comportamiento del consumidor LUIS AREVALO
MBA comportamiento del consumidor LUIS AREVALOMBA comportamiento del consumidor LUIS AREVALO
MBA comportamiento del consumidor LUIS AREVALOLuis Arevalo
 
Présentation Bio pour tous
Présentation Bio pour tous Présentation Bio pour tous
Présentation Bio pour tous Editions VAN IN
 

En vedette (20)

La loi de l’information, fichier et liberté
La loi de l’information, fichier et libertéLa loi de l’information, fichier et liberté
La loi de l’information, fichier et liberté
 
Pollution in Tunisia
Pollution in TunisiaPollution in Tunisia
Pollution in Tunisia
 
Gobiernos union liberal
Gobiernos union liberalGobiernos union liberal
Gobiernos union liberal
 
Manual balay lavadora 3 ts885x
Manual balay   lavadora 3 ts885xManual balay   lavadora 3 ts885x
Manual balay lavadora 3 ts885x
 
lavavajillas Teka LP7 811
lavavajillas Teka LP7 811lavavajillas Teka LP7 811
lavavajillas Teka LP7 811
 
Manual bosch combi blanco kgn39 aw32
Manual bosch   combi blanco kgn39 aw32Manual bosch   combi blanco kgn39 aw32
Manual bosch combi blanco kgn39 aw32
 
Manual bosch combi kgn39 ai20
Manual bosch   combi kgn39 ai20Manual bosch   combi kgn39 ai20
Manual bosch combi kgn39 ai20
 
Scripto sensu e post
Scripto sensu e postScripto sensu e post
Scripto sensu e post
 
Reinadode Isabel II. Bienio progresista.
Reinadode Isabel II. Bienio progresista.Reinadode Isabel II. Bienio progresista.
Reinadode Isabel II. Bienio progresista.
 
Manual Balay - campana 3 bi798
Manual Balay - campana 3 bi798Manual Balay - campana 3 bi798
Manual Balay - campana 3 bi798
 
Manual bosch campana a pared dwk09 m720
Manual bosch   campana a pared dwk09 m720Manual bosch   campana a pared dwk09 m720
Manual bosch campana a pared dwk09 m720
 
Manual bosch campana dww098 u50
Manual bosch   campana dww098 u50Manual bosch   campana dww098 u50
Manual bosch campana dww098 u50
 
Audacity
AudacityAudacity
Audacity
 
Powerpoint gimp
Powerpoint gimpPowerpoint gimp
Powerpoint gimp
 
Manual bosch horno independiente hba43 s451e
Manual bosch   horno independiente hba43 s451eManual bosch   horno independiente hba43 s451e
Manual bosch horno independiente hba43 s451e
 
La france d’outre mer
La france d’outre merLa france d’outre mer
La france d’outre mer
 
Manual balay - cocina 3 cgb462bt
Manual balay  - cocina 3 cgb462btManual balay  - cocina 3 cgb462bt
Manual balay - cocina 3 cgb462bt
 
MBA comportamiento del consumidor LUIS AREVALO
MBA comportamiento del consumidor LUIS AREVALOMBA comportamiento del consumidor LUIS AREVALO
MBA comportamiento del consumidor LUIS AREVALO
 
TI Verdes
TI VerdesTI Verdes
TI Verdes
 
Présentation Bio pour tous
Présentation Bio pour tous Présentation Bio pour tous
Présentation Bio pour tous
 

Similaire à JAVA 8

Lyon JUG 2018 - Java le changement c'est maintenant
Lyon JUG 2018 - Java le changement c'est maintenantLyon JUG 2018 - Java le changement c'est maintenant
Lyon JUG 2018 - Java le changement c'est maintenantJean-Michel Doudoux
 
Apres java 8, java 9 et 10 - BreizhCamp 2018
Apres java 8, java 9 et 10 - BreizhCamp 2018Apres java 8, java 9 et 10 - BreizhCamp 2018
Apres java 8, java 9 et 10 - BreizhCamp 2018Jean-Michel Doudoux
 
Presentation du SGBD Oracle DATABASE.pptx
Presentation du SGBD Oracle DATABASE.pptxPresentation du SGBD Oracle DATABASE.pptx
Presentation du SGBD Oracle DATABASE.pptxPriscilleGANKIA
 
Nantes jug 2018 - Java le changement c'est maintenant
Nantes jug 2018 - Java le changement c'est maintenantNantes jug 2018 - Java le changement c'est maintenant
Nantes jug 2018 - Java le changement c'est maintenantJean-Michel Doudoux
 
Apéro techno node.js + AngularJS @Omnilog 2014
Apéro techno node.js + AngularJS @Omnilog 2014Apéro techno node.js + AngularJS @Omnilog 2014
Apéro techno node.js + AngularJS @Omnilog 2014Yves-Emmanuel Jutard
 
Java uik-chap1-intro java
Java uik-chap1-intro javaJava uik-chap1-intro java
Java uik-chap1-intro javaAmel Morchdi
 
Back to the future of java (from 8 to 11 and beyond)
Back to the future of java (from 8 to 11 and beyond)Back to the future of java (from 8 to 11 and beyond)
Back to the future of java (from 8 to 11 and beyond)Jérôme Tamborini
 
COURS INITIATION A L'ALGORITHME ET PROGRAMMATION.06.12.21.pptx
COURS INITIATION A L'ALGORITHME ET  PROGRAMMATION.06.12.21.pptxCOURS INITIATION A L'ALGORITHME ET  PROGRAMMATION.06.12.21.pptx
COURS INITIATION A L'ALGORITHME ET PROGRAMMATION.06.12.21.pptxITNAV1
 
Enib cours c.a.i. web - séance #5 : scala play! framework
Enib   cours c.a.i. web - séance #5 : scala play! frameworkEnib   cours c.a.i. web - séance #5 : scala play! framework
Enib cours c.a.i. web - séance #5 : scala play! frameworkHoracio Gonzalez
 

Similaire à JAVA 8 (20)

Lyon JUG 2018 - Java le changement c'est maintenant
Lyon JUG 2018 - Java le changement c'est maintenantLyon JUG 2018 - Java le changement c'est maintenant
Lyon JUG 2018 - Java le changement c'est maintenant
 
Cours langage-c
Cours langage-cCours langage-c
Cours langage-c
 
Apres java 8, java 9 et 10 - BreizhCamp 2018
Apres java 8, java 9 et 10 - BreizhCamp 2018Apres java 8, java 9 et 10 - BreizhCamp 2018
Apres java 8, java 9 et 10 - BreizhCamp 2018
 
Presentation du SGBD Oracle DATABASE.pptx
Presentation du SGBD Oracle DATABASE.pptxPresentation du SGBD Oracle DATABASE.pptx
Presentation du SGBD Oracle DATABASE.pptx
 
Nantes jug 2018 - Java le changement c'est maintenant
Nantes jug 2018 - Java le changement c'est maintenantNantes jug 2018 - Java le changement c'est maintenant
Nantes jug 2018 - Java le changement c'est maintenant
 
Java Fx Rapport
Java Fx RapportJava Fx Rapport
Java Fx Rapport
 
Javaoop
JavaoopJavaoop
Javaoop
 
Chap 02 poo en java
Chap 02 poo en javaChap 02 poo en java
Chap 02 poo en java
 
Apéro techno node.js + AngularJS @Omnilog 2014
Apéro techno node.js + AngularJS @Omnilog 2014Apéro techno node.js + AngularJS @Omnilog 2014
Apéro techno node.js + AngularJS @Omnilog 2014
 
Java uik-chap1-intro java
Java uik-chap1-intro javaJava uik-chap1-intro java
Java uik-chap1-intro java
 
Back to the future of java (from 8 to 11 and beyond)
Back to the future of java (from 8 to 11 and beyond)Back to the future of java (from 8 to 11 and beyond)
Back to the future of java (from 8 to 11 and beyond)
 
COURS INITIATION A L'ALGORITHME ET PROGRAMMATION.06.12.21.pptx
COURS INITIATION A L'ALGORITHME ET  PROGRAMMATION.06.12.21.pptxCOURS INITIATION A L'ALGORITHME ET  PROGRAMMATION.06.12.21.pptx
COURS INITIATION A L'ALGORITHME ET PROGRAMMATION.06.12.21.pptx
 
Mysql
MysqlMysql
Mysql
 
Java vs .Net
Java vs .NetJava vs .Net
Java vs .Net
 
Java vs .Net
Java vs .NetJava vs .Net
Java vs .Net
 
Chapitre 1
Chapitre 1Chapitre 1
Chapitre 1
 
Enib cours c.a.i. web - séance #5 : scala play! framework
Enib   cours c.a.i. web - séance #5 : scala play! frameworkEnib   cours c.a.i. web - séance #5 : scala play! framework
Enib cours c.a.i. web - séance #5 : scala play! framework
 
tp-spring.pdf
tp-spring.pdftp-spring.pdf
tp-spring.pdf
 
tp-spring.pdf
tp-spring.pdftp-spring.pdf
tp-spring.pdf
 
Tutoriel java
Tutoriel javaTutoriel java
Tutoriel java
 

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

  1. Une expression lambda est caractérisée par la syntaxe suivante.
  2. 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
  3. L'expression SQL ci-dessus renvoie automatiquement les détails de l'employé qui a le salaire maximal.
  4. 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 .
  5. 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
  6. Voici quelques-unes des classes importantes introduites dans le paquet de java.time