Parcours d'apprentissage

Roadmap Java de A a Z

Un parcours pratique pour passer des fondamentaux Java a la conception, au test et a la livraison de systemes backend.

Fondations

Origines de Java, versions et LTS

  • Histoire de Java et ecosysteme JVM
  • Cadence des releases et modele de versioning
  • Ce que signifie LTS et quand migrer
  • Etat actuel du langage Java
  • Ou Java est utilise (logiciels, backend, Android)
Ouvrir le tutoriel >

Fondations

Installer le JDK et l outillage

  • Installer JDK 21+
  • Configurer JAVA_HOME/PATH
  • Utiliser IntelliJ ou VS Code
Ouvrir le tutoriel >

Syntaxe coeur

Modele mental JVM, JDK, JRE

  • Fonctionnement du bytecode
  • Bases du class loading
  • Compilation vs execution
Ouvrir le tutoriel >

Bases du langage

Variables, types, operateurs

  • Primitifs vs wrappers
  • Cast de types
  • Operateurs arithmetiques et logiques
Ouvrir le tutoriel >

Bases du langage

Controle de flux

  • if/else, switch
  • for/while/do-while
  • break, continue, return
Ouvrir le tutoriel >

Bases du langage

Methodes et parametres

  • Signatures de methodes
  • Semantique pass-by-value
  • Surcharge (overloading)
Ouvrir le tutoriel >

POO

Classes et objets

  • Champs et constructeurs
  • Membres instance vs static
  • Encapsulation
Ouvrir le tutoriel >

POO

Heritage et polymorphisme

  • extends, super
  • Redefinition de methodes
  • Dispatch dynamique
Ouvrir le tutoriel >

POO

Interfaces et classes abstraites

  • Design contract-first
  • Methodes default/static
  • Composition plutot que heritage
Ouvrir le tutoriel >

Gestion des erreurs

Exceptions

  • Checked vs unchecked
  • try/catch/finally
  • Types d exceptions personnalisees
Ouvrir le tutoriel >

APIs coeur

Strings et Date/Time

  • StringBuilder, immutabilite
  • API java.time
  • Formatage et parsing
Ouvrir le tutoriel >

APIs coeur

Fondamentaux des collections

  • List, Set, Map
  • Quand utiliser chaque structure
  • Bases de complexite Big-O
Ouvrir le tutoriel >

APIs coeur

Generiques

  • Parametres de type
  • Wildcards ? extends/super
  • Methodes generiques
Ouvrir le tutoriel >

APIs coeur

Enum, Record, Sealed Classes

  • Modeliser des etats finis
  • DTO immuables avec record
  • Restreindre l heritage
Ouvrir le tutoriel >

Java fonctionnel

Lambdas et interfaces fonctionnelles

  • Predicate, Function, Consumer
  • References de methodes
  • Style higher-order
Ouvrir le tutoriel >

Java fonctionnel

Streams

  • map/filter/reduce
  • Collectors
  • Eviter la sur-utilisation des streams
Ouvrir le tutoriel >

Java fonctionnel

Optional

  • Flux null-safe
  • map/flatMap/orElse
  • Bonnes pratiques aux frontieres d API
Ouvrir le tutoriel >

I/O

Fichiers, Paths, NIO.2

  • Lire/ecrire des fichiers
  • Parcours de repertoires
  • APIs bufferisees
Ouvrir le tutoriel >

Concurrence

Threads et synchronisation

  • Cycle de vie des threads
  • synchronized et locks
  • Race conditions
Ouvrir le tutoriel >

Concurrence

CompletableFuture

  • Pipelines asynchrones
  • Gestion des erreurs
  • Composition de taches async
Ouvrir le tutoriel >

Outils de build

Maven ou Gradle

  • Scopes de dependances
  • Plugins et cycle de vie
  • Profils
Ouvrir le tutoriel >

Donnees

Fondamentaux SQL

  • Joins et index
  • Transactions
  • Bases d optimisation de requetes
Ouvrir le tutoriel >

Donnees

JPA/Hibernate

  • Mapping d entites
  • Lazy vs eager loading
  • N+1 et frontieres transactionnelles
Ouvrir le tutoriel >

Backend

Essentials API backend

  • Architecture en couches
  • Configuration et validation
  • Contrats de gestion d erreurs
Ouvrir le tutoriel >

Securite

Bases de la securite applicative

  • Concepts AuthN/AuthZ
  • Approches token/session
  • Durcissement des endpoints
Ouvrir le tutoriel >

Tests

JUnit 5 + Mockito

  • Tests unitaires
  • Mocks et stubs
  • Nommage et structure des tests
Ouvrir le tutoriel >

Delivery

Docker + CI/CD

  • Containeriser l application
  • Pipelines de build
  • Strategies de deploiement
Ouvrir le tutoriel >

Production

Observabilite et performance

  • Logs structures
  • Metriques et tracing
  • Profiling et tuning
Ouvrir le tutoriel >

Articles du blog

En lien avec Java

Une sélection de trois articles du blog dont le titre contient Java.

Voir tout
Understanding DTOs in Java Spring Boot banner

13/01/2025 · 3 min

Understanding DTOs in Java Spring Boot

In Java Spring Boot development, **DTO** (Data Transfer Object) is a common design pattern used to transfer data between different layers of an application. This pattern is especially useful in complex systems where entit

#spring-boot #java
open >
Introduction to Maven in a Java Spring Boot project banner

08/01/2025 · 7 min

Introduction to Maven in a Java Spring Boot project

[Apache Maven](https://maven.apache.org/) is a powerful build automation and dependency management tool widely used in Java development. When working on a Spring Boot project, Maven simplifies project setup, dependency ma

#spring-boot #java
open >
Primitive types and wrapper classes in Java banner

19/12/2024 · 4 min

Primitive types and wrapper classes in Java

Java is a statically typed programming language that supports both primitive data types and objects. While primitive types are fundamental to the language, their object equivalents—known as wrapper classes—are critical fo

#java
open >