Développement logiciel
Fondamentaux de la programmation Java
Une introduction pratique au Java moderne pour les développeurs appelés à écrire du code de production sur Java 17 ou 21. Les participants traitent les types, les collections, les génériques, les exceptions, les streams, Optional et les records jusqu'à pouvoir lire et faire évoluer une base de code existante.
Aperçu
Un apprentissage pratique pour le transfert en situation de travail.
Les équipes qui apprennent Java sur des tutoriels dispersés finissent souvent par écrire du Java 7 dans un runtime Java 21 : données mutables partout, vérifications de null dans la logique métier, boucles manuelles là où un stream conviendrait, et un build qui ne tourne que sur une machine. Cette formation comble l'écart en enseignant le langage tel qu'il s'écrit aujourd'hui. Les participants partent du système de types et du modèle objet, traversent collections, génériques et gestion des erreurs, puis terminent avec les records, les types scellés, le pattern matching et les pipelines de streams appliqués à de vraies transformations de données dans un projet Maven.
Prérequis
Expérience de base en programmation dans un langage quelconque. Aucune connaissance préalable de Java n'est requise.
Objectifs
- Écrire, compiler et exécuter des applications Java modernes au niveau de langage Java 21 avec Maven.
- Appliquer le système de types, les génériques et le framework de collections pour modéliser correctement les données.
- Gérer les erreurs avec les exceptions vérifiées et non vérifiées, try-with-resources et des contrats explicites.
- Transformer les données avec les lambdas, les pipelines de streams et Optional plutôt qu'avec des vérifications défensives de null.
- Modéliser des données de domaine immuables avec les records, les types scellés et le pattern matching dans switch.
- Structurer un projet Java en paquets et en unités testables qu'une équipe peut maintenir dans la durée.
Public cible
- Développeurs venant d'un autre langage de programmation
- Ingénieurs logiciels juniors rejoignant une base de code Java existante
- Jeunes diplômés et ingénieurs en formation dans un parcours d'intégration
- Ingénieurs d'automatisation et de test devant lire et étendre du code Java
- Ingénieurs d'intégration travaillant sur des plateformes d'entreprise en Java
- Ingénieurs de support technique diagnostiquant des applications Java en production
Programme
Une structure claire pour le parcours d'apprentissage.
Les points du programme sont regroupés dans un seul bloc au lieu de créer un module par ligne.
01La plateforme Java et la mise en place d'un projet moderne4 sujets
- JDK, JVM et bytecode : ce qui s'exécute réellement au démarrage d'un programme Java
- Les versions LTS Java 17 et 21 et les fonctionnalités que chacune a rendues standard
- Structure d'un projet Maven, portées de dépendances et build reproductible par tous
- Exécuter, packager et déboguer depuis l'IDE comme depuis la ligne de commande
02Types, objets et modèle de classes4 sujets
- Primitifs, wrappers, références et coût caché de l'autoboxing
- Classes, constructeurs, champs et encapsulation qui résiste aux évolutions
- Interfaces, classes abstraites et méthodes par défaut comparées en pratique
- Écrire equals, hashCode et toString correctement et de façon cohérente
03Collections, génériques et modélisation des données4 sujets
- List, Set, Map et Deque choisis selon le mode d'accès plutôt que par habitude
- Génériques, paramètres de type et jokers bornés dans le code courant
- Collections immuables, copies défensives et partage sûr entre threads
- Comparateurs, tri et garanties d'ordre d'itération propres à chaque type
04Erreurs, ressources et contrats d'échec4 sujets
- Exceptions vérifiées ou non vérifiées : ce que chacune signale à l'appelant
- try-with-resources et libération déterministe des fichiers, flux et connexions
- Concevoir des types d'exception porteurs d'un contexte de diagnostic exploitable
- Journalisation, traces d'appel et ce qui ne doit jamais figurer dans un bloc catch
05Java fonctionnel : lambdas, streams et Optional4 sujets
- Lambdas, références de méthode et interfaces fonctionnelles standard
- Pipelines de streams : filter, map, flatMap et les collecteurs réellement utiles
- Optional comme contrat de retour, jamais comme champ ni comme paramètre
- Quand une boucle ordinaire est plus claire, plus rapide et plus facile à déboguer
06Records, types scellés et pattern matching4 sujets
- Les records comme porteurs de données immuables et les membres générés par le compilateur
- Interfaces scellées rendant les variantes d'un domaine explicites et exhaustives
- Pattern matching dans instanceof et switch, y compris les patterns de records
- Exercice final : refactoriser un petit service vers le Java moderne de bout en bout
Supports fournis
- Manuel de formation, exemples de code commentés et notes de référence
- Environnement de laboratoire et dépôts de démarrage
- Exercices, check-lists et modèles de code réutilisables
- Certificat de participation 4D
- Accompagnement technique après la formation
Options de formation
Les programmes peuvent être organisés en entreprise, en ligne ou dans un format hybride selon le calendrier, la localisation et les objectifs de vos équipes. Lorsqu'un certificat ou un examen externe est inclus, les règles et frais de certification restent soumis aux politiques de l'organisme certificateur, tandis que 4D assure la formation et l'accompagnement à la préparation.
Pourquoi choisir 4D
4D enseigne Java sur la version que vos équipes exécutent réellement, avec vos outils de build et une base de code proche de celle à laquelle les participants retournent. Les formateurs sont des ingénieurs Java en activité : les exercices ciblent les remarques de revue et les problèmes de maintenance qui suivent les débutants en production, pas des exercices de syntaxe isolés.
Formations liées
Fondamentaux de la programmation Python
Une introduction pratique à Python pour les ingénieurs et analystes qui ont besoin de code opérationnel plutôt que d'extraits de tutoriel. Les participants acquièrent de l'aisance avec les types, les collections, les fonctions, les fichiers et la gestion des erreurs, puis construisent un programme complet.
View coursePython intermédiaire et pratiques de code propre
Conçue pour les développeurs dont le code Python fonctionne mais résiste au changement. Le programme couvre dataclasses, générateurs, décorateurs, gestionnaires de contexte et annotations de types, puis applique les refactorings qui transforment un module interminable en unités testées contrôlées par black, ruff et mypy.
View courseAutomatisation et scripting Python pour les tâches métier
Destinée aux équipes qui perdent chaque semaine des heures en manipulations de fichiers, de tableurs et de rapports. Les participants automatisent ces tâches avec Python : traitement de fichiers en lot, Excel et CSV, appels d'API REST, alertes par e-mail et tâches planifiées qui signalent clairement toute défaillance.
View course