Présentation du langage
- Présentation et historique du langage
- L'écosytème Java : Java SE, Java EE
L'environnement de développement
- Présentation du JDK
- Présentation Jetbrains IntelliJ (Integrated Development Environment)
- Perspectives, vues et éditeurs
- Editer, compiler et exécuter du code
- Documenter le code avec Javadoc
- Importer des librairies externes
- Assistants, raccourcis clavier, trucs et astuces
- Refactoring : formatage, gestion des imports, génération de code
Déclarations et contrôle d'accès (java.lang)
- Norme JavaBean et validité des identifiants
- Déclarer une classe, organisation en packages
- Déclarer des membres d'une classe
- Types de données : types primitifs, références, tableaux
- Déclarer une propriété
- Déclarer une méthode : paramètres et type de retour
- Notion de constructeur, processus d'instanciation
- Classes abstraites et interfaces
- Contrôle d'accès
- Modificateurs de visibilité : public, protected, package, private
- Autres modificateurs : final, static
Programmation objet (java.lang)
- Introduction à la conception objet, notions de classe et d'instance
- Introduction à la notation UML : diagrammes de classes et de séquences
- Principes de forte encapsulation et de couplage faible
- Notion de composition (« HAS-A »)
- Notions d'héritage (« IS-A »), de polymorphisme, de cast
- Surcharge (« overloading ») et redéfinition (« overriding »)
- Notion d'identité d'objet : equals et hashCode
Opérateurs (java.lang)
- Affectation
- Egalité et comparaison
- Opérateurs booléens
- Instanceof
Structure de contrôle et exceptions (java.lang)
- Tests : if, switch
- Boucles : for, foreach, while, do-while
- Notions d'exceptions
- Déclaration dans les signatures des métodes
- Capture et traitement avec « try/catch »
- Notion de bloc « finally »
- Hiérarchie des exceptions, « checked » vs « runtime »
Tableaux et Collections (java.util)
- Les types de collections : List, Set, Map
- Comprendre l'API des collections : introduction aux types paramétrés (« generics »)
- Choisir la bonne collection
- Parcourir une collection ou un tableau : notion d'itérateur
- Trier une collection ou un tableau : Comparable et Comparator
- Rechercher dans une collection ou un tableau
Formatage et Internationalisation (java.text)
- Notion de Locale
- Formater les dates et les nombres avec DateFormat et NumberFormat
- Formater les messages avec MessageFormat et ChoiceFormat
- Externaliser les messages avec ResourceBundle
I/O Fichiers (java.io)
- Notions de flux textuel (Reader/Writer) et binaire (Streams)
- Hiérarchie des classes de java.io et notion d'adapter
- Ecriture et lecture d'un fichier texte sur disque avec BufferedReader et PrintWriter
- Notion de sérialisation, variables transientes
- Ecriture et lecture d'un graphe d'objets sur disque avec ObjectOutputStream et ObjectInputStream
I/O Réseau (java.io)
- Notion d'adresse réseau et de port
- Notion de socket
- Connexion à un serveur en TCP, lecture et écriture du flux
- Développement d'un serveur
- Notion de protocole, présentation de protocoles existants
Accès aux bases de données avec JDBC (java.sql)
- Ouverture d'une connexion
- Effectuer une requête en écriture
- Effectuer une requête en lecture, notion de ResultSet
- Utiliser PreparedStatement