CSC 4509 – Algorithmique et communications des applications réparties

Portail informatique

Tutoriels sur des compléments JAVA

  • Compléter les connaissances avec des concepts additionnels du langage JAVA utilisés dans l'ossature de départ de l'application de tchat multiclient multiserveur.
  • Étudier les idiomes JAVA mis en œuvre dans l'ossature de départ de l'application répartie.

nous serons deux intervenants lors des premiers TP utilisant l'ossature de départ. Donc, pas d'inquiètude : vous aurez de l'aide en séance pour découvrir le code ; mais, pour en bénificier pleinement, vous devez étudier attentivement les tutoriels pointés par cette page !

Première liste de concepts (≈ 1h45)

Bloc de code static

(≈ 10mn)
  • Lien vers le tutoriel : Initializing Fields, qui inclut une présentation du concept de bloc de code static.

Classes anonymes

(≈ 15mn)
  • Lien vers le tutoriel sur le concept de classe anonyme : « Anonymous Classes »

Interface avec constantes et méhodes par défaut

(≈ 20mn)
  • Liens vers les deux pages pour la notion de méthode par défaut :
    1. Evolving Interfaces,
    2. Default Methods (jusqu'à la section « Integrating Default Methods into Existing Libraries », cette dernière section de la page étant exclue de l'étude).

Classes paramétrées, Generics

(≈ 1h)

Seconde liste de concepts (≥ 3h)

Programmation fonctionnelle avec les Lambda expressions et les Streams

(≥ 2h)
  • L'objectif de JAVA sur ce sujet est le suivant : « offer first-class language support for defining, passing, and storing blocks of code for later execution. » La fonction (au sens mathématique, c'est-à-dire sans effet de bord) devient donc un objet de première classe : une méthode peut par exemple prendre en paramètre une fonction (cf. fonction d'ordre supérieur). C'est l'orientation fonctionnelle de la programmation, complètement absente dans JAVA avant la version 8. Nous proposons d'étudier le suje en deux temps : les lambda expressions puis le cas d'utilisation le plus fréquent avec la manipulation des collections avec les Streams.
    1. Lien vers le tutoriel introduisant les Lambda expressions, en deux parties :
      • Java 8: Lambdas, Part 1 (≈ 50mn). Ne vous attardez pas sur les explications autour des classes imbriquées (en anglais, inner classes), que nous n'utilisons pas dans l'ossature que vous utiliserez.
      • Java 8: Lambdas, Part 2 (≈ 50mn)
    2. Lien vers la page Javadoc du paquetage java.util.stream qui présente l'utilisation des Streams : java.util.stream (≈ 20mn)
  • Pour lire le code de l'ossature fournie, les tutoriels précédents suffisent. Pour écrire des lambda expressions et utiliser les streams, le site qui suit constitue un manuel de référence intéressant en ce qui concerne la terminologie, les définitions, la syntaxe et des exemples :

Gestion des références null avec la classe Optional

(≈ 45mn)
  • Similairement à d'autres langages comme Groovy ou Scala, JAVA propose depuis la version 8 des idiomes pour rendre explicite la possibilité qu'une référence puisse être null et ainsi alerter le programmeur pour qu'il evite le déréférencement dans ce cas.

 

 

 


$Date: 2018-05-03 08:43:13 +0200 (jeu. 03 mai 2018) $