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.
Programme
Les points du programme sont regroupés dans un seul bloc au lieu de créer un module par ligne.
Module 1 : La plateforme Java et la mise en place d'un projet moderne
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
Module 2 : Types, objets et modèle de classes
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
Module 3 : Collections, génériques et modélisation des données
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
Module 4 : Erreurs, ressources et contrats d'échec
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
Module 5 : Java fonctionnel : lambdas, streams et Optional
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
Module 6 : Records, types scellés et pattern matching
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