0Pricing
Java Academy icon

Java Academy

JAVABackendWebMobileEnterpriseBeginnerCloudDatabaseAndroidDesktopNetwork

Devenez compétent en programmation Java et développez des applications puissantes avec Java Academy.

🤖 Alimenté par l'IA📚 104 cours👥 100 000+ apprenants⭐ Note 4,9
Présentation du Cours

Java : Des premières classes aux systèmes prêts pour la production

Java a été l'épine dorsale des logiciels d'entreprise, du développement Android et des systèmes backend à grande échelle pendant près de trois décennies. Il s'exécute sur la JVM, est livré avec une riche bibliothèque standard et alimente tout, des plateformes de trading financier aux microservices cloud. Cette formation construit une véritable compétence en Java — en commençant par les variables et les flux de contrôle, et en terminant par les internes de la JVM, les threads virtuels et la compilation native via GraalVM.

Ce que vous apprendrez

Vous passerez de la syntaxe fondamentale — variables, types de données, boucles et méthodes — à la conception orientée objet avec classes, héritage, polymorphisme, sealed classes et records. Les étapes intermédiaires couvrent l'intégralité du framework Collections, les APIs java.time et NIO.2, les expressions lambda, les interfaces fonctionnelles et l'API Streams incluant les collectors, les spliterators et les primitive streams. Les cours ultérieurs abordent la configuration Spring Boot et l'injection de dépendances, Spring Data JPA, la validation des API REST, les tests d'intégration JUnit 5 et la sécurité basée sur JWT. La fin de la formation couvre ExecutorService, les verrous, les variables atomiques, CompletableFuture, la concurrence structurée, les threads virtuels via Project Loom, le chargement de classes JVM et le bytecode, la compilation d'images natives GraalVM et le profilage des performances avec JMH.

Le parcours d'apprentissage

Plus de 120 cours s'étendent de A1 à C2. Les cours A1 et A2 établissent les fondamentaux : le système de types, le casting, l'autoboxing, les classes wrapper, les tableaux, les conditionnelles et les méthodes. B1 couvre Java orienté objet en profondeur — enums, classes internes, itérateurs, comparateurs, les internes de HashMap, la gestion des exceptions, la sérialisation et les outils de construction comme Maven et Gradle. B2 introduit la programmation fonctionnelle, les génériques avec les wildcards bornés, les annotations personnalisées et une séquence Spring Boot pratique se terminant par un Mini Projet : API REST. Les cours C1 sont là où la concurrence et la performance prennent le devant de la scène — parallel streams, le Java Memory Model, la garbage collection, la réflexion, les proxies dynamiques et la concurrence structurée. La formation se termine en C2 avec l'API Foreign Function and Memory, la capacité Java de niveau le plus bas pour interagir directement avec du code natif.

Comment cela fonctionne

Chaque cours est divisé en courtes leçons ciblées que vous complétez dans l'éditeur de code intégré avec des retours en temps réel. Un tuteur IA est disponible dès que vous êtes bloqué, et les mini-projets à des jalons clés — Word Stats, Shape Hierarchy, Log Analyzer, API REST et Parallel Stats — vous permettent d'appliquer ce que vous avez appris avant de poursuivre.

Commencer →

Comment Tu Vas Apprendre

🎯
Leçons Interactives
Exercices de codage pratiques avec retours en temps réel
🤖
Tuteur IA
Obtiens une aide instantanée de notre IA quand tu es bloqué
💻
Éditeur Intégré
Écris et exécute du code directement dans ton navigateur
🏆
Certificat
Obtiens un certificat en complétant le cours
Programme

104 Cours

Tous les cours du parcours d'apprentissage Java Academy.

01

Introduction à Java

A13 leçons

Java est un langage de programmation de haut niveau et orienté objet, lancé en 1995 par Sun Microsystems. Réputé pour sa capacité « Write O…

02

Scanner et saisie dans la console

A14 leçonsPRO

Scanner et saisie dans la console : lire des données avec Scanner, lire des nombres et des lignes, et plus encore

03

Bonjour Java et configuration de l’IDE

A13 leçonsPRO

Commencez votre parcours avec Java : découvrez ce qu’est la programmation, comment Java s’exécute sur la JVM et quels outils vous seront né…

04

Les bases essentielles des variables et expressions

A13 leçonsPRO

Maîtrisez les variables et les expressions Java : découvrez les types primitifs, les déclarations, l’affectation, l’affichage des valeurs e…

05

Système de types et conversions en Java

A24 leçonsPRO

Maîtrisez le système de types de Java : types primitifs et de référence, conversions avec élargissement ou réduction, transtypage explicite…

06

Mathématiques et formatage des nombres en Java

A24 leçonsPRO

Découvrez la classe Math, BigDecimal pour la précision financière, NumberFormat pour un affichage adapté aux paramètres régionaux et la rés…

07

Expressions switch et syntaxe fléchée

A24 leçonsPRO

Expressions switch et syntaxe fléchée : switch de style fléché, switch comme expression et plus encore

08

Blocs de texte et chaînes multilignes

A24 leçonsPRO

Blocs de texte et chaînes multilignes : déclarer des blocs de texte, indentation et suppression, et plus encore

09

var et inférence de type locale

A24 leçonsPRO

var et inférence de type locale : utiliser var pour les variables locales, quand var améliore la lisibilité et plus encore

10

Classes enveloppes et autoboxing

A24 leçonsPRO

Classes enveloppes et autoboxing : types primitifs ou enveloppes, autoboxing et unboxing, et plus encore

11

La classe utilitaire Arrays

A24 leçonsPRO

La classe utilitaire Arrays : Arrays.sort et le tri, Arrays.binarySearch et plus encore

12

Utilitaires Java pour l’aléatoire et les mathématiques

A24 leçonsPRO

Utilitaires Java pour l’aléatoire et les mathématiques : la classe Math, générer des nombres aléatoires et plus encore

13

Lire les entrées avec BufferedReader

A24 leçonsPRO

Lisez efficacement les entrées de l’utilisateur et des fichiers en Java.

14

Expressions ternaires et conditionnelles en Java

A24 leçonsPRO

Prenez des décisions concises avec l’opérateur conditionnel.

15

Caractères et méthodes Character en Java

A24 leçonsPRO

Manipulez des caractères individuels avec la classe Character.

16

Formater les sorties avec printf

A24 leçonsPRO

Produisez du texte soigneusement mis en forme avec des spécificateurs de format.

17

Boucles étiquetées et contrôle du flux en Java

A24 leçonsPRO

Contrôlez les boucles imbriquées avec break, continue et des étiquettes.

18

Conditions I : les bases de if/else

A23 leçonsPRO

Prenez des décisions en Java avec if, else if et else. Construisez des expressions booléennes claires à l’aide d’opérateurs de comparaison…

19

Conditions II : opérateurs et switch

A23 leçonsPRO

Approfondissez les comparaisons (==, !=, <, >, <=, >=) et la logique booléenne (&&, ||, !). Découvrez la priorité des opérateurs, le regrou…

20

Boucles I&nbsp;: while et do-while

A22 leçonsPRO

Apprenez les boucles while étape par étape : initialisation, condition, mise à jour et prévention des boucles infinies. Entraînez-vous avec…

21

Boucles II&nbsp;: for et modèles

A23 leçonsPRO

Maîtrisez la boucle for : initialisation, condition et mise à jour sur une seule ligne. Écrivez des boucles de comptage, des sommes et des…

22

Opérateurs Java

A21 leçonPRO

Java propose de nombreux opérateurs pour manipuler les données dont nous disposons. Grâce à eux, nous pouvons traiter ces données. Il s’agi…

23

Chaînes de caractères en Java

A21 leçonPRO

Le type de données chaîne de caractères est utilisé en Java pour stocker du texte. En Java, les chaînes sont des types de données de référe…

24

Tableaux I&nbsp;: tableaux à une dimension

A23 leçonsPRO

Découvrez les tableaux à une dimension : ce qu’ils sont, comment les déclarer et les créer, accéder à leurs éléments et les mettre à jour,…

25

Tableaux II : tableaux 2D

A26 leçonsPRO

Apprenez à utiliser les tableaux 2D en Java : déclarez-les et créez-les, accédez à leurs lignes et colonnes, puis parcourez-les avec des bo…

26

Méthodes I : notions de base

A23 leçonsPRO

Maîtrisez les fondements des méthodes Java : signatures, paramètres et arguments, conventions d’appel et principes de conception. Suivez de…

27

Méthodes II : conception et réutilisation

A23 leçonsPRO

Concevez et réutilisez efficacement les méthodes : comprenez la sémantique du passage par valeur de Java, choisissez entre méthodes statiqu…

28

Énumérations Java

B14 leçonsPRO

Apprenez à définir et utiliser les énumérations en Java : constantes d’énumération, champs, méthodes, expressions switch avec des énumérati…

29

Records Java et données immuables

B14 leçonsPRO

Découvrez les records Java (Java 16+) : création de conteneurs de données immuables, constructeurs compacts, méthodes personnalisées sur le…

30

StringBuilder et performances des chaînes

B14 leçonsPRO

StringBuilder et performances des chaînes : pourquoi les chaînes sont immuables, construire des chaînes avec StringBuilder et plus encore

31

BigDecimal et BigInteger

B14 leçonsPRO

BigDecimal et BigInteger : pourquoi ne pas utiliser double pour l’argent, travailler avec BigDecimal et plus encore

32

API de date et d’heure java.time

B14 leçonsPRO

API de date et d’heure java.time : LocalDate, LocalTime, LocalDateTime, Instant et Duration, et plus encore

33

Optional en Java

B14 leçonsPRO

Utilisez Optional pour éliminer les NullPointerExceptions : création, mappage, filtrage et consommation idiomatique des Optional en Java 17…

34

Plongée au cœur des chaînes Java

B14 leçonsPRO

Allez au-delà des chaînes de base : StringBuilder, StringJoiner, expressions régulières, String.format, blocs de texte et modèles courants…

35

Varargs, surcharge et membres statiques en Java

B14 leçonsPRO

Maîtrisez la résolution de la surcharge des méthodes, les paramètres varargs, les champs et méthodes statiques ainsi que les modèles de con…

36

Classes internes et classes anonymes en Java

B14 leçonsPRO

Découvrez les variantes de classes imbriquées : classes imbriquées statiques, classes internes, classes locales et classes anonymes, ainsi…

37

Itérateurs et Iterable en Java

B14 leçonsPRO

Implémentez vos propres interfaces Iterable et Iterator pour rendre vos structures de données compatibles avec les boucles for-each et le f…

38

Comparateurs et tri en Java

B14 leçonsPRO

Triez des collections et des tableaux avec Comparable, Comparator, les références de méthodes et des chaînes de tri à plusieurs niveaux dan…

39

LinkedList et Deque en Java

B14 leçonsPRO

Comprenez le fonctionnement interne de LinkedList, sa structure doublement chaînée, les opérations de Deque, la simulation d’une pile et le…

40

TreeMap et TreeSet en Java

B14 leçonsPRO

Maîtrisez les collections triées : opérations NavigableMap de TreeMap, TreeSet pour les éléments uniques triés, subMap/headMap/tailMap et f…

41

API Path et Files de Java NIO.2

B14 leçonsPRO

Explorez l’API moderne java.nio.file : création de Path, méthodes utilitaires de Files, parcours des répertoires avec walkFileTree et surve…

42

Sérialisation Java et persistance des objets

B14 leçonsPRO

Comprenez la sérialisation Java : l’interface Serializable, les champs transient, serialVersionUID, les méthodes writeObject/readObject per…

43

Classes et interfaces scellées

B14 leçonsPRO

Classes et interfaces scellées : déclarer des types scellés, clause permits et plus encore

44

Correspondance de motifs pour instanceof et les records

B14 leçonsPRO

Correspondance de motifs pour instanceof et les records : correspondance de motifs pour instanceof, motifs de record et plus encore

45

Expressions régulières avec Pattern et Matcher

B14 leçonsPRO

Expressions régulières avec Pattern et Matcher : compiler des motifs, rechercher et mettre en correspondance, et plus encore

46

Fonctionnement interne de HashMap et equals/hashCode

B14 leçonsPRO

Fonctionnement interne de HashMap et equals/hashCode : comprendre le fonctionnement de HashMap, le contrat equals/hashCode et plus encore

47

EnumMap, EnumSet et énumérations avancées

B14 leçonsPRO

EnumMap, EnumSet et énumérations avancées : énumérations avec champs et méthodes, méthodes abstraites dans les énumérations et plus encore

48

Journalisation avec SLF4J et Logback

B14 leçonsPRO

Journalisation avec SLF4J et Logback : pourquoi une journalisation structurée, façade SLF4J et enregistreurs, et plus encore

49

Paquets et modificateurs d’accès

B11 leçonPRO

Java utilise des modificateurs d’accès pour limiter l’accès des objets les uns aux autres. Cette limitation peut parfois s’appliquer au niv…

50

Mini-projet : statistiques de mots

B13 leçonsPRO

Créez un petit outil de statistiques de mots : tokenisez le texte, normalisez-le, comptez les occurrences et présentez les résultats princi…

51

POO I : classes et objets

B13 leçonsPRO

Découvrez les bases des classes et des objets en Java. Créez des classes simples, instanciez des objets et comprenez leur rôle en POO.

52

POO II : bonnes pratiques

B13 leçonsPRO

Découvrez les pratiques courantes de la POO en Java : le mot-clé this, une méthode toString lisible, des implémentations correctes de equal…

53

Héritage I

B13 leçonsPRO

Découvrez les bases de l’héritage en Java : étendez une classe de base, appelez les constructeurs super et réutilisez les comportements com…

54

Abstractions et interfaces

B13 leçonsPRO

Découvrez les classes abstraites et les interfaces en Java : quand les utiliser, comment les déclarer et comment elles orientent la concept…

55

Mini-projet : hiérarchie de formes

B13 leçonsPRO

Concevez et implémentez une petite hiérarchie de formes avec une base abstraite, des formes concrètes et des comportements polymorphes.

56

Collections I : listes et ensembles

B13 leçonsPRO

Apprenez à utiliser les listes et les ensembles Java : quand choisir chacun d’eux, leurs opérations de base et des méthodes simples de parc…

57

Collections II : tables associatives et algorithmes

B13 leçonsPRO

Apprenez à utiliser les tables associatives pour rechercher des valeurs par clé, compter les fréquences et appliquer des algorithmes simple…

58

Exceptions I : fondamentaux

B13 leçonsPRO

Découvrez les bases de la gestion des exceptions : blocs try, catch et finally à l’aide d’exemples simples.

59

Exceptions II : mise en pratique

B13 leçonsPRO

Mettez en pratique la gestion des exceptions avec des exceptions personnalisées, des instructions throw et une programmation défensive.

60

Fichiers et entrées-sorties I

B13 leçonsPRO

Découvrez les classes Java NIO Path et Files : créer, vérifier et supprimer des fichiers en toute sécurité.

61

Fichiers et entrées-sorties II

B13 leçonsPRO

Découvrez la sérialisation d’objets Java : écrire des objets dans des fichiers et les relire.

62

Mini-projet : analyseur de journaux

B13 leçonsPRO

Créez un analyseur de journaux simple pour lire, analyser et résumer des fichiers journaux.

63

Outils de compilation : Maven et Gradle

B14 leçonsPRO

Outils de compilation : Maven et Gradle : structure d’un projet Maven, plugins et objectifs Maven, et plus encore

64

JDBC et regroupement de connexions

B14 leçonsPRO

JDBC et regroupement de connexions : bases de JDBC, PreparedStatement et plus encore

65

Plongée au cœur des collecteurs de flux Java

B24 leçonsPRO

Allez au-delà des Streams de base : groupingBy, partitioningBy, toMap, counting, summarizingInt, joining et création de Collectors personna…

66

Références de méthodes Java

B24 leçonsPRO

Simplifiez les expressions lambda avec les références de méthodes : références statiques, d’instance, d’instance arbitraire et de construct…

67

Patrons de conception Java : création

B24 leçonsPRO

Implémentez les quatre principaux patrons de création en Java : Singleton (compatible avec les threads), Factory Method, Abstract Factory e…

68

Patrons de conception Java : comportement

B24 leçonsPRO

Maîtrisez les patrons de conception comportementaux en Java : Observer, Strategy, Command et Template Method, avec des cas d’utilisation co…

69

Les interfaces fonctionnelles en profondeur

B24 leçonsPRO

Les interfaces fonctionnelles en profondeur : Function et BiFunction, Supplier et Consumer, et plus encore

70

Flux de types primitifs

B24 leçonsPRO

Flux de types primitifs : IntStream et LongStream, opérations de plage et d’agrégation, et plus encore

71

Jokers bornés et PECS

B24 leçonsPRO

Jokers bornés et PECS : jokers avec borne supérieure, jokers avec borne inférieure et plus encore

72

Interfaces et types génériques

B23 leçonsPRO

Mettez les interfaces en pratique et découvrez les bases des types génériques Java pour produire un code plus sûr et réutilisable.

73

Annotations Java personnalisées

B24 leçonsPRO

Définissez des annotations personnalisées, leurs politiques de rétention et leurs cibles, puis traitez-les à l’exécution avec la réflexion…

74

Opérations avancées sur les flux et Spliterator

B24 leçonsPRO

Exploitez les fonctionnalités avancées des flux : flatMap sur des structures imbriquées, peek pour le débogage, pièges des flux parallèles,…

75

Spring Boot : configuration et injection de dépendances

B24 leçonsPRO

Maîtrisez l’auto-configuration de Spring Boot, les propriétés d’application, les profils, @Bean, @Component, @Service, @Repository et les b…

76

Spring Data JPA : entités et référentiels

B24 leçonsPRO

Associez des entités Java à des tables de base de données avec les annotations JPA, définissez des référentiels Spring Data, écrivez des re…

77

API REST Spring Boot : validation et gestion des erreurs

B24 leçonsPRO

Créez des API REST robustes : Bean Validation avec @Valid, validateurs personnalisés, gestion globale des exceptions avec @ControllerAdvice…

78

Tests avec JUnit 5 : tests paramétrés et d’intégration

B24 leçonsPRO

Allez au-delà des tests unitaires de base : tests paramétrés avec @MethodSource et @CsvSource, Testcontainers pour l’intégration aux bases…

79

Sécurité Java : hachage, chiffrement et JWT

B24 leçonsPRO

Mettez en œuvre les fondamentaux de la sécurité en Java : MessageDigest pour le hachage, chiffrement AES, HMAC-SHA256 et création et vérifi…

80

Système de modules Java (JPMS)

B24 leçonsPRO

Système de modules Java (JPMS) : module-info.java, requires et exports, et plus encore

81

Client HTTP moderne

B24 leçonsPRO

Client HTTP moderne : java.net.http.HttpClient, requêtes asynchrones et plus encore

82

GraalVM et image native

B24 leçonsPRO

GraalVM et image native : qu’est-ce que GraalVM ?, construire une image native et plus encore

83

Lambdas et interfaces fonctionnelles

B23 leçonsPRO

Découvrez les lambdas et les interfaces fonctionnelles Java.

84

Flux I : pipelines

B23 leçonsPRO

Apprenez à utiliser les flux Java pour traiter des données au moyen de pipelines.

85

Démarrage avec Spring Boot

B23 leçonsPRO

Commencez avec Spring Boot : configurez un projet, utilisez les modules de démarrage et exécutez votre première application.

86

Données et services

B23 leçonsPRO

Apprenez à utiliser Spring Data JPA et la base de données H2 avec des référentiels.

87

Tests et livraison

B23 leçonsPRO

Testez des applications Spring avec WebTestClient et JUnit, puis découvrez la configuration et la création des paquets.

88

Mini-projet : API REST

B24 leçonsPRO

Concevez, implémentez et testez une API REST avec Spring Boot.

89

ExecutorService et pools de threads Java

C14 leçonsPRO

Gérez les cycles de vie des threads avec ExecutorService : pools fixes, mis en cache et planifiés, soumission de tâches Callable et gestion…

90

Verrous et variables atomiques en Java

C14 leçonsPRO

Allez au-delà de synchronized : ReentrantLock, ReadWriteLock, StampedLock, AtomicInteger, AtomicReference et modèles de structures de donné…

91

Flux parallèles et performances

C14 leçonsPRO

Flux parallèles et performances : créer des flux parallèles, quand le parallélisme est utile et plus encore

92

Gestion de la mémoire Java et récupération de mémoire

C14 leçonsPRO

Comprenez le modèle mémoire de la JVM : zones du tas (Young/Old/Metaspace), algorithmes de récupération de mémoire (G1, ZGC), fuites mémoir…

93

CompletableFuture et pipelines asynchrones en Java

C14 leçonsPRO

Composez des calculs asynchrones avec CompletableFuture : thenApply, thenCompose, allOf, anyOf, exceptionally et création de pipelines non…

94

Réflexion Java et proxies dynamiques

C14 leçonsPRO

Utilisez l’API Reflection pour inspecter et invoquer des classes à l’exécution, créer des proxies dynamiques et comprendre comment des fram…

95

Internals de la JVM : chargement des classes et bytecode

C14 leçonsPRO

Découvrez les coulisses de la JVM : phases de chargement des classes, hiérarchie des chargeurs bootstrap/extension/application, inspection…

96

Threads virtuels (projet Loom)

C14 leçonsPRO

Threads virtuels (projet Loom) : que sont les threads virtuels ?, créer des threads virtuels et plus encore

97

Concurrence structurée

C14 leçonsPRO

Concurrence structurée : le modèle de concurrence structurée, StructuredTaskScope et plus encore

98

Microcomparaisons avec JMH

C14 leçonsPRO

Microcomparaisons avec JMH : pourquoi utiliser JMH, écrire une mesure de performance et plus encore

99

Analyse et optimisation des performances Java

C14 leçonsPRO

Analyse et optimisation des performances Java : identifier les goulots d’étranglement, Java Flight Recorder et plus encore

100

Flux II : performances et pièges

C13 leçonsPRO

Découvrez les comportements avancés des flux, notamment l’ordre et l’évaluation avec court-circuit.

101

Concurrence I

C12 leçonsPRO

Découvrez la concurrence en Java avec les threads, les exécuteurs et la synchronisation.

102

Concurrence II

C13 leçonsPRO

Approfondissez la concurrence : synchronisation, verrous, opérations atomiques et problèmes courants.

103

Mini-projet : statistiques parallèles

C13 leçonsPRO

Créez un projet qui calcule des statistiques en parallèle à l’aide des flux et de la concurrence.

104

API des fonctions étrangères et de la mémoire

C24 leçonsPRO

API des fonctions étrangères et de la mémoire : pourquoi FFM plutôt que JNI, MemorySegment et Arena, et plus encore

FAQ

Questions Fréquemment Posées

Le cours Java Academy est-il gratuit ?

Oui. Tu peux commencer le cours Java Academy gratuitement et compléter ses leçons interactives sans frais. Un abonnement PRO optionnel déverrouille des outils IA avancés et un certificat partageable.

Ai-je besoin d'expérience préalable pour apprendre JAVA ?

Non. Le cours commence par les fondamentaux et progresse graduellement vers des sujets plus avancés, tu peux donc commencer même sans expérience préalable en JAVA.

Comment vais-je apprendre JAVA sur CoddyKit ?

Tu apprends en faisant. Des leçons interactives courtes associent une explication claire avec un exercice de codage pratique qui s'exécute en temps réel, et un tuteur IA disponible 24h/24 offre une aide personnalisée dès que tu es bloqué.

Puis-je obtenir un certificat en complétant Java Academy ?

Oui. Les apprenants PRO peuvent passer un examen et obtenir un certificat de réussite partageable avec un code vérifiable pour le cours Java Academy.

Puis-je apprendre JAVA sur mon téléphone ?

Oui. CoddyKit est disponible sur le web et sous forme d'applications iOS et Android natives, tu peux donc apprendre JAVA sur n'importe quel appareil et ta progression se synchronise entre eux.

Commencez Java Academy Maintenant

Rejoignez des milliers d'apprenants maîtrisant la programmation avec des cours alimentés par l'IA.

Commencer Gratuitement →Parcourir Tous les Cours