Le langage Java

Le langage Java

  • Introduction
    • L’environnement
    • Oracle JDK et Open JDK
    • Un bref historique des versions
  • Installation
    • Configuration d’Eclipse
  • Compilation & exécution
    • Un premier programme
    • La compilation
    • L’exécution
    • La liaison dynamique
    • Le classpath
    • Bibliothèques Java : les fichiers JAR
    • Création d’un projet dans Eclipse
    • Exercice
  • La structure fondamentale du langage
    • Les instructions
    • Le typage
    • Les blocs de code
    • Les commentaires
    • Le formatage du code
    • Les conventions de nommage
    • Les mots-clés
  • Une première classe
    • Déclarer une classe
    • Anatomie d’une classe
    • Ajouter des méthodes
    • La méthode main
    • Exécuter le programme en ligne de commandes
    • Exécuter le programme depuis Eclipse
    • Exercices
  • Les types primitifs
    • Le type booléen : boolean
    • Le type caractère : char
    • Les types entiers : byte, short, int, long
    • Les types à virgule flottante : float, double
    • Les classes enveloppes
    • L’autoboxing
  • Les opérateurs
    • L’opérateur d’affectation
    • Les opérateurs arithmétiques
    • Les opérateurs arithmétiques unaires
    • L’opérateur de concaténation de chaînes
    • Les opérateurs relationnels
    • Les opérateurs logiques
    • L’opérateur ternaire
    • Les opérateurs bitwise
    • Les opérateurs de décalage
    • Le transtypage (cast)
    • Opérateur et assignation
    • L’opérateur .
    • L’opérateur ,
    • Exercice
  • Les structures de contrôle
    • if-else
    • return
    • while
    • do-while
    • for
    • for amélioré
    • break-continue
    • libellé
    • switch
    • Exercices
  • Les tableaux
    • Initialisation
    • Création avec new
    • Accès aux éléments d’un tableau
    • Tableau multi-dimensionnel
    • Conversion en chaîne de caractères
    • Égalité de deux tableaux
    • Tri & recherche
    • Copie d’un tableau
    • Typage d’un tableau
    • Conversion d’un tableau en liste
  • Attributs & méthodes
    • Les attributs
      • La portée
      • L’initialisation
      • attributs finaux
      • Attributs de classe
      • Attributs de classe finaux
    • Les méthodes
      • La portée
      • La valeur de retour
      • Les paramètres
      • Paramètre final
      • Les variables
      • Méthodes de classe
    • Surcharge de méthode : overloading
    • Portée des noms et this
    • Principe d’encapsulation
    • Exercice
  • Cycle de vie d’un objet
    • Le constructeur
      • Paramètres de constructeur
      • Valeur par défaut des attributs
      • Constructeur par défaut
      • Constructeur privé
      • Appel d’un constructeur dans un constructeur
      • Appel d’une méthode dans un constructeur
    • Injection de dépendances par le constructeur
    • Le bloc d’initialisation
    • Le bloc d’initialisation de classe
    • Exercice
    • Mémoire heap et stack
    • Le ramasse-miettes
    • La méthode finalize
  • Les packages
    • Déclaration d’un package
    • Sous package
    • Nom d’un package
    • Nom complet d’une classe
    • Import de noms
    • La portée de niveau package
    • Le fichier package-info.java
  • Héritage et composition
    • L’héritage (is-a)
    • Héritage et constructeur
    • Héritage simple : Object
    • Héritage et affectation
    • Le mot-clé instanceof
    • La portée protected
    • Héritage des méthodes et attributs de classe
    • Héritage et final
    • La composition (has-a)
  • Le polymorphisme
    • Principe du polymorphisme
    • Une exception : les méthodes privées
    • Redéfinition et signature de méthode
    • Le mot-clé super
    • L’annotation @Override
    • Les méthodes de classe
    • Méthode finale
    • Constructeur et polymorphisme
    • Masquage des attributs par héritage
    • Le principe du ouvert/fermé
  • Les classes abstraites
    • Déclarer une classe abstraite
    • Déclarer une méthode abstraite
  • La classe Object
    • La méthode equals
    • La méthode hashCode
    • La méthode toString
    • La méthode finalize
    • La méthode clone
    • La méthode getClass
    • Les méthodes de concurrence
  • La classe String
    • String et tableau de caractères
    • Quelques méthodes utilitaires
    • Construction d’une instance de String
    • Immutabilité des chaînes de caractères
    • La classe StringBuilder
    • Formatage de texte
    • Les expressions régulières
  • Les exceptions
    • Qu’est-ce qu’une exception ?
    • Signaler une exception
    • Traiter une exception
    • Propagation d’une exception
    • Exceptions et polymorphisme
    • Le bloc finally
    • Le try-with-resources
    • Hiérarchie applicative d’exception
    • Exception cause
    • Les erreurs et les exceptions runtime
    • Choix entre checked et unchecked
  • Les énumérations
    • Les méthodes d’une énumération
    • Égalité entre énumérations
    • Support de switch
    • Génération d’une énumération
    • Ajout de méthodes et d’attributs
    • Ajout de constructeurs
  • Les interfaces
    • Déclaration d’une interface
    • Implémentation d’une interface
    • Attributs et méthodes statiques
    • Héritage d’interface
    • Les interfaces marqueurs
    • Implémentation par défaut
    • La ségrégation d’interface
    • L’inversion de dépendance
  • Méthodes et classes génériques
    • L’exemple de la classe ArrayList
    • Création et assignation d’une classe générique
    • Notation en diamant
    • Substitution et type générique
    • Écrire une méthode générique
    • Écrire une classe générique
    • Limitations
  • Les collections
    • Les listes
      • La classe ArrayList
      • La classe LinkedList
      • La classe ArrayDeque
      • La classe PriorityQueue
      • Les classes Vector et Stack
      • Les interfaces pour les listes
    • Les ensembles (set)
      • La classe TreeSet
      • La classe HashSet
      • La classe LinkedHashSet
      • Les interfaces pour les ensembles
    • Copie d’une collection dans un tableau
    • Les tableaux associatifs (maps)
      • La classe TreeMap
      • La classe HashMap
      • La classe LinkedHashMap
      • Les classes Dictionary et Hashtable
      • Les interfaces pour les tableaux associatifs
    • La classe outil Collections
  • Les entrées/sorties
    • InputStream et classes concrètes
    • OutputStream et classes concrètes
    • Flux orientés caractères
    • Reader et classes concrètes
    • Writer et classes concrètes
    • Les décorateurs de flux
    • La classe Scanner
    • Fichiers et chemins
    • Accès au réseau
    • La sérialisation d’objets
      • Donnée transient
      • Identifiant de version de sérialisation
  • Les dates
    • Date : la classe historique
    • Calendar
    • L’API Date/Time
      • Les Dates
      • La classe Instant
      • Période et durée
    • Formatage des dates
    • Lecture des dates
    • Exercice
  • Programmation fonctionnelle et lambdas
    • Les fonctions anonymes : les lambdas
      • Syntaxe des lambdas
      • Usage des lambdas
      • Lambda et closure
      • Les interfaces fonctionnelles
      • L’opérateur :: de référence de méthode
    • La classe Optional
  • Streams
    • Création d’un stream
    • La réduction
    • La collecte
    • Le filtrage
    • Le mapping
    • Le parallélisme
    • Exercice
  • Les classes internes
    • Les classes internes static
    • Les classes internes
    • Les classes anonymes
    • Accès aux éléments de l’objet englobant
    • Classe interne à une méthode
    • Interface et énumération
    • Plusieurs classes dans un même fichier
  • Les annotations
    • Utilisation des annotations
    • Déclaration d’une annotation
    • Rétention d’une annotation
    • Utilisation des annotations par introspection
    • Exercice
  • Les modules
    • Des modules pour améliorer la sécurité
    • Des modules pour plus de modularité
    • Le descripteur de module (module-info.java)
      • Dépendance à d’autres modules
      • Exposer des packages
      • Utiliser un service
      • Fournir un service
    • Le module anonyme
    • La notion de module path
Le langage Java
D'autres formations sont sur https://gayerie.dev
  • »
  • Recherche


Par David Gayerie - - https://gayerie.dev

Licence Creative Commons Cette œuvre est mise à disposition selon les termes de la Licence Creative Commons Attribution - Partage dans les Mêmes Conditions 3.0 France