Plan du cours
Introduction à Java
- Histoire et évolution de Java
- Vue d'ensemble des versions et des mises à jour de Java
- Nouveautés de Java 17
- Installation du kit de développement Java (JDK 17) et de l'IDE
Structure du programme Java
- Écrire un programme Java simple
- Aperçu de la syntaxe Java
- Compilation et exécution d'applications Java
Types de données et variables
- Types de données primitifs et classes enveloppantes
- Déclarer des variables et des constantes
- Conversion de type et moulage
Opérateurs dans Java
- Opérateurs arithmétiques, relationnels, logiques et bitwise
- Précédence des opérateurs et associativité
Déclarations de flux de contrôle
- Énoncés conditionnels (if-else, switch)
- Constructions en boucle (for, while, do-while)
- Expressions de commutation améliorées (Java 17 caractéristiques)
Introduction aux concepts de la POO
- Classes et objets
- Encapsulation, héritage, polymorphisme et abstraction
Création de classes et d'objets
- Déclaration et initialisation des objets
- Le mot-clé this
- Les constructeurs (par défaut et paramétrés)
L'héritage
- Extension des classes (mot-clé extends)
- Surcharge de méthodes et mot-clé super
- Classes et méthodes abstraites
Polymorphisme
- Polymorphisme à la compilation et polymorphisme à l'exécution
- Surcharge de méthode et superposition
Interfaces
- Définition et mise en œuvre des interfaces
- Interfaces fonctionnelles et méthodes par défaut
Classes d'enregistrements (fonctionnalité Java 17)
- Comprendre les enregistrements dans Java 17
- Comment les enregistrements simplifient l'encapsulation des données
Les génériques dans Java 17
- Comprendre les paramètres de type
- Classes, méthodes et interfaces génériques
- Types délimités et caractères génériques
Gestion des exceptions
- Types d'exceptions (vérifiées et non vérifiées)
- Blocs try-catch-finally
- Lancer et attraper des exceptions
- Création d'exceptions personnalisées
Java Cadre des collections
- Interfaces List, Set, Map et Queue
- Implémentations populaires : ArrayList, HashMap, HashSet
- Itérateurs et boucles for améliorées
Lambda Expressions et fonctionnelles Programming
- Introduction aux expressions lambda
- Syntaxe et utilisation
- Interfaces fonctionnelles
API de flux
- Vue d'ensemble des Java flux
- Opérations sur les flux (filtrage, mappage, réduction)
- Flux parallèles et considérations relatives aux performances
Classes scellées
- Définition et utilisation des classes scellées
- Sous-classes autorisées et restrictions
Correspondance de motifs pour instanceof (Java 17 fonctionnalité)
- Simplifier les vérifications de type grâce à la correspondance de motifs
Blocs de texte
- Travailler avec des blocs de texte multilignes dans Java
- Comparaison avec la gestion traditionnelle des chaînes de caractères
Améliorations des enregistrements et de la sérialisation
- Sérialisation et compatibilité ascendante
- Comment les enregistrements améliorent la lisibilité et la maintenance du code
Déclassement et suppression de fonctionnalités
- API obsolètes dans Java 17
- Suppression des fonctionnalités obsolètes
Améliorations apportées aux commutateurs Expression
- Correspondance de motifs dans les commutateurs
- Utilisation des expressions switch pour un code plus propre
Fonction étrangère et API de mémoire (Incubateur)
- Vue d'ensemble du module incubateur
- Travailler avec du code natif dans Java
Java Système de modules (Projet Jigsaw)
- Introduction aux modules dans Java
- Création et utilisation de modules
- Descripteurs de modules et module-info.java
- Avantages de la modularisation
Concurrence et multithreading
- Introduction aux threads et au multithreading
- Interface Runnable et interface Callable
- Synchronisation, verrous et sécurité des threads
Asynchronisme Programming avec CompetableFuture
- Écrire du code asynchrone
- Utilisation de CompetableFuture pour les opérations non bloquantes
Déploiement d'applications Java
- Créer et exécuter des fichiers JAR
- Emballage et distribution des applications Java
- Introduction à GraalVM (optionnel)
Meilleures pratiques et optimisation du code
- Écrire un code Java efficace et facile à maintenir
- Les pièges les plus courants en matière de performance et comment les éviter
- Techniques de refonte du code
Résumé et prochaines étapes
Pré requis
- Connaissances de base en programmation
Public
- Développeurs de logiciels
- Programmeurs
Nos clients témoignent (1)
j'ai bien apprécié le cours avec Reda, c'est une personne très à l'écoute et ouvert pour toute question. Il s'adapte aux besoins de son client