Aller au contenu principal

AELION : 02. JAVA, programmation avancée

Durée

28 heures

Modalités

Formation
  • Classe virtuelle
  • Présentiel
Évaluation

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

Inter
La formation en Inter est dispensée pour un groupe de salariés d’entreprises différentes.
1176€ HT / personne
Intra
La formation en Intra est dispensée pour un groupe de salariés d’une seule et même entreprise.
5040€ HT / groupe
4 stagiaires minimum

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

Sessions

Filtrer les résultats
Modalités pédagogiques
Formation synchrone se déroulant avec la présence physique du (des) formateur(s) et du (des) apprenant(s) réunis dans un même lieu de formation.
Formation combinant des séquences en présentiel et des séquences à distance synchrones ou asynchrones.
Formation à distance, asynchrone, s’appuyant sur une plateforme d’apprentissage, pouvant être complétée par d’autres modalités de formation à distance (visio-conférence…)
Formation à distance, synchrone, s’appuyant sur un dispositif de visio-conférence. La classe virtuelle recrée à distance les conditions d’une formation en salle traditionnelle.
Type de formation
La formation en Inter est dispensée pour un groupe de salariés d’entreprises différentes.
La formation en Intra est dispensée pour un groupe de salariés d’une seule et même entreprise.
Options
Les compétences professionnelles visées par la formation sont validées via un test permettant d’obtenir une certification officielle.
Ces sessions ne peuvent être ni annulées ni reportées par l’organisme de formation.