AELION : 02. JAVA, programmation avancée
Organisme
31200 TOULOUSEVoir toutes ses formationsAutres organismes proposant cette formation
Durée
Modalités
- Classe virtuelle
- Présentiel
Questionnaire d’évaluation des pré-requis, suivi des connaissances tout au long de la formation, Evaluation des acquis en fin de formation Questionnaire d’évaluation de la satisfaction en fin de stage
Prix
Public
Développeurs, chargés de développement d’applications informatiques, chefs de projets proches du développement…
Pré-requis
Maitriser le langage Java, connaître les concepts de bases de données relationnelles et du langage SQL, disposer d’une expérience en programmation Java.
Objectifs pédagogiques
- Maîtriser les aspects avancés du langage Java
- Comprendre comment appliquer les principaux Frameworks et librairies Java. Comprendre le modèle de sécurité et le chargement des classes Java
- Savoir programmer en Java dans le contexte des bases de données relationnelles
- Savoir tester, debugger et optimiser ses applications
- Appréhender les nouveautés Java
Programme détaillé
SAVOIR TESTER, DEBOGUER ET OPTIMISER SES APPLICATIONS (1/2)
- A l’issue de cette séquence, vous êtes capable de vous situer dans l’historique des versions de Java Standard Edition. Vous vous mettez à jour sur les outils disponibles avec Java SE et l’organisation d’un projet Java.
- Hsitorique de JAVE SE
- JVM, JRE et JDK
- Édition Oracle ou OpenJDK et licences respectives
- Code source et bytecode
- Packages et modules
- Shell Java
- IDE, tests et débogueur
SAVOIR TESTER, DEBOGUER ET OPTIMISER SES APPLICATIONS (2/2)
- A l’issue de cette séquence, vous êtes capable de situer les données de votre application dans les différentes zones de la mémoire. Vous pouvez optimiser la libération des données en mémoire. Vous monitorez vos applications avec des outils de supervision de la JVM.
- Gestion de la mémoire
- Pile et tas
- Le ramasse miette
- Référence Forte
- Référence Faible
- Référence fantôme
- Monitoring
- Console Java
- Java Mission Control (version Oracle uniquement)
MAITRISER LES ASPECTS AVANCES DU LANGAGE JAVA (1/6)
- A l'issue de cette séquence, vous êtes capable d’optimiser votre code avec des mécanismes de base du langage comme les arguments de fonction en nombre variable, l’usage modéré de l’autoboxing des types primitifs et personnaliser des types énumérés.
- Autoboxing des types primitifs
- Les varargs
- Les énumérations complexes
- Les données temporelles depuis Java 8
- Création, formatage, parsing des données temporelles
- Fuseaux horaires et paramètres locaux
MAITRISER LES ASPECTS AVANCES DU LANGAGE JAVA (2/6)
- A l’issue de cette séquence, vous êtes capable de fournir à une fonction du 2e ordre une fonction en argument correspondant au type fonctionnel attendu. Vous pouvez définir des nouveaux types fonctionnels simples.
- Interface fonctionnelle
- Méthodes « default » et « static » des interfaces
- Les fonctions anonymes
- Référence de méthode objet
- Référence de méthode sur un objet particulier
- Référence de constructeur
- Référence, héritage et liaison tardive
- Référence et surcharges
- Référence et autoboxing
- Référence et conversions implicites sur les nombres
MAITRISER LES ASPECTS AVANCES DU LANGAGE JAVA (3/6)
- A l’issue de cette séquence, vous êtes capable d’exploiter les API génériques de Java en comprenant les contraintes de covariance et contravariance vis à vis de l’héritage et des fonctions du 2e ordre.
- Inférence de type
- Déclaration de variable avec mot clé var
- Effacement de type
- Types génériques avec lower ou upper bound
- Covariance et contravariance
- Méthode générique
MAITRISER LES ASPECTS AVANCES DU LANGAGE JAVA (4/6)
- A l’issue de cette séquence, vous êtes capable de choisir un type de collection adéquat en fonction des traitements envisagés. Vous appliquez des algorithmes inclus dans l’API à vos collections de données.
- Collections de Java
- Collections simplifiées pour l’écriture des tests
- Itérateurs
- Instruction for "each" vs méthode forEach
- Boîte à outils java.util.Collections?
MAITRISER LES ASPECTS AVANCES DU LANGAGE JAVA (5/6)
- A l’issue de cette séquence, vous êtes capable d’exprimer un traitement de type map/reduce sur un volume de données. Vous utilisez les techniques de programmation fonctionnelle vues précédemment.
- Les streams d'objets
- Les principes du map/reduce
- Interfaces fonctionnelles dédiées au map/reduce
- Filtrer les données
- Transformation des données
- Collecte des données
- Gestion particulière des types primitifs
- Utilisation des collecteurs prédéfinis
- Écrire un collecteur custom
- Génération de streams
- Combiner des streams
MAITRISER LES ASPECTS AVANCES DU LANGAGE JAVA (6/6)
- A l’issue de cette séquence, vous êtes capable de lire la documentation d’une annotation et savez la placer dans son code de manière adéquate. Vous êtes capable de personnaliser votre usage en utilisant les arguments adéquats.
- Les annotations
- Annotations standards et Méta-Annotations
- Rétention des annotations
- Cible des annotations
- Les arguments d'une annotation
- Lecture par réflexion d'une annotation
- Traitement avec javac ou javax.annotation.processing
- Manipulation de bytecode avec Javassist
COMPRENDRE LE MODELE DE SECURITE ET LE CHARGEMENT DES CLASSES JAVA
- A l’issue de cette séquence, vous êtes capable de créer un Framework générique basé sur l’introspection et les annotations.
- API d'introspection
- La classe Class<T>
- Les autres classes du méta modèle
- Instanciations et appels dynamique
- Restriction de sécurité
- Exploitation dynamique des annotations
COMPRENDRE COMMENT APPLIQUER LES PRINCIPAUX FRAMEWORKS ET LIBRAIRIES JAVA
- A l’issue de cette séquence, vous êtes capable d'exploiter les API modernes NIO et Stream<T> pour écrire des programmes parcourant un système de fichiers ou le contenu d'un fichier. Vous gérez simplement les deux problématiques orthogonales de l'ouverture/fermeture des ressources et du traitement des erreurs en délimitant les zones de codes exploitant chaque ressource.
- JAVA.NIO (NIO ET NIO2) VS JAVA.IO
- Les flux d’entrées sorties
- Gestion du système de fichiers
- Pattern visiteur
- Sérialisation des objets
- Ressources Autocloseable et try-with-resources
COMPRENDRE COMMENT APPLIQUER LES PRINCIPAUX FRAMEWORKS ET LIBRAIRIES JAVA
- A l’issue de cette séquence, vous êtes capable de traiter des données optionnelles en mode impératif ou fonctionnel. Vous utilisez les types modernes de données temporelles correspondant aux standards internationaux en lieu et place des types d’origine de Java.
- Données optionnelles
- Interface Optional<T>
- Types primitifs optionnels
- Traitement impératif optionnel
- Transformation d'une donnée optionnelle
- Objets optionnels imbriqués
SAVOIR PROGRAMMER EN JAVA DANS LE CONTEXTE DES BASES DE DONNEES RELATIONNELLES
- A l’issue de cette séquence, vous êtes capable de gérer la persistance de données simples dans une base de données relationnelle en passant par un ORM répondant à la spécification JPA. Vous savez gérer différents types d’association entre des données persistantes vers une application et vers une base de données relationnelle.
- Spécification JDBC ET DRIVERS JDBC
- ORM, JPA et Hibernate
- Configuration ORM et gestion des sessions
- Mapping d’une classe simple avec une table
- Types temporels, énumérations
- Collections simples
- Mapping d’associations
- CRUD sur les objets
- Requêtes JPQL, HQL ou SQL natif
- Requêtes avec l’API Criteria