JAVA AVANCÉ

Formation certifiante - Code CPF 94 013 - 3 jours (21 heures)

Formations en présentiel

Formations Blended - Learning

Formations E-learning Tutoré

Présentiel

Blended - Learning

E-learning tutoré

Accueil  >  Les métiers du numérique  >   Java Jee  >  Java avancé

A l'issue de la formation, les stagiaires seront capables de :

  • Développer une application complexe en Java
  • Comprendre les notions liées à la machine virtuelle (JVM), 
  • Savoir modifier le comportement d’une machine virtuelle
  • Réaliser une application multi-tâches et temps réel
  • Sécuriser correctement son application
  • Comprendre les design patterns et leur utilisation pratique
  • Comprendre  Java et les tests unitaires et leur utilisation pratique
  • Utiliser une base de données avec Java
  • Gérer l’API Date/Time
  • Mise en œuvre d’une API Stream pour la manipulation des flux de données

La formation Java avancé est accessible à toute personne ayant des connaissances élémentaires de la programmation en Java.

Des exercices, des études de cas, des QCM et des tours de table permettent au formateur d’évaluer l’atteinte des objectifs ainsi que la progression du stagiaire à différents moments de la formation.
La validation de toutes les compétences requises est obligatoire pour l’obtention d’un BADGE ou d’un Certificat. L'obtention du Certificat est validé par la réalisation et la présentation d'un projet devant un jury.

  • Développeurs informatiques
  • Ingénieurs d’étude
  • Architecte système et logiciel
  • Consultants et chefs de projets proches du développement
  • Tout développeur ou informaticien souhaitant développer des applications et des services WEB avec JAVA J2EE

PROGRAMME DE FORMATION

JAVA AVANCÉ

Syntaxes avancés du langage

  • Les « import static »
  • Autoboxing et auto-unboxing des types primitifs
  • Les types génériques
  • Amélioration des boucles avec les collections
  • Introspection et réflexion
  • Méthodes à nombre d’arguments variable
  • Annotations : utilisation, création

Comprendre la JVM (Machine Virtuelle)

  • Chargement des classes, Classloader, classpath
  • Comprendre comment fonctionne le garbage collector et la gestion de la mémoire, forcer un garbage
  • Optimiser l’utilisation de la mémoire, modifier les paramètres de lancement
  • Comprendre le class loader
  • Modifier la stratégie de chargement des classes : ecriture d’un class loader
  • Piloter la JVM via API

Gérer les accès concurrents

  • Définition d’un thread
  • Concepts et spécificités du multithreading par rapport à la programmation « traditionnelle »
  • Créer et manipuler les threads
  • Synchroniser les threads sur un objet moniteur
  • Interfaces Lock et Condition
  • Pools de threads
  • Les apports du framework Executor (invocation, ordonnancement, exécution, contrôle)
  • Le package java.util.concurrent
  • Exemple de temps réel
  • Bonnes et mauvaises pratiques

Annotations

  • Programmation orientée aspect et Java
  • Le modèle Annotations
  • Types d’annotations
  • Annotations intégrées
  • Annotations vs. Descripteurs (XML)

Atelier cas pratique

La sécurité en Java

  • Les contextes : standalone, applet, serveur Java EE
  • Les API de sécurité (JAAS, JCE, JSSE)
  • La configuration
  • Cryptographie et PKI
  • Signer une applet java

Introduction aux Design Patterns

  • Programmation par interfaces
  • Introduction aux design patterns du GoF (Gang Of Four)
  • Les documentations de référence
  • Pattern Singleton
  • Pattern Factory
  • Pattern Decorator
  • Pattern Observer
  • Pattern Proxy
  • Architecture MVC
  • Architectures n-tier

Accéder à une base de données relationnelle avec JDBC

  • Architecture et types de pilotes JDBC
  • Charger le pilote et récupérer une connexion à la base de données
  • Exécuter des requêtes SQL, requêtes paramétrées
  • Exploitation des résultats

Java et les tests unitaires

  • Présentation, intérêt
  • Automatisation et intégration des tests dans le processus de builds, l’exemple de Maven
  • Mise en œuvre avec JUnit5, assertions, annotations
  • Cycle de vie d’exécution d’un test
  • Données de tests
  • Suite de tests

Nouvelle API Date/Time

  • La gestion du temps «classique» et sa lourdeur de manipulation en Java (jour, mois, année, heure, minutes, sec.)
  • Les concepts de temps machine et temps humain avec la nouvelle API
  • La gestion du temps machine avec java.time.Instant et java.time.Duration
  • Le temps humain avec java.time.LocalDate, java.time.LocalTime, java.time.LocalDateTime

Atelier cas pratique 

Notion de persistance objet 

  • Principes
  • Data Transfer Object
  • Exemple d’Hibernate

Gestion de flux d’entrées/sorties

  • Flux binaires, encodages
  • Sérialisation/désérialisation d’objets
  • Les modifieurs Java et leurs impacts

Architecture à objets distribués : RMI (Remote Method Invocation)

  • Présentation
  • Appel de méthodes d’un objet distant (TCP-IP)
  • Appel de méthodes d’un objet distant (RMI)
  • Annuaire d’objets : RMIRegistry
  • Interface Remote
  • Le compilateur rmic
  • Stub et skeleton
  • Construction du client et du serveur
  • Introduction à CORBA et IIOP

Réseaux en Java

  • Le modèle de référence OSI
  • Protocoles réseau
  • La classe Socket
  • La classe Server Socket
  • Connexion via des objets URL
  • HTTP et autres serveurs TCP
  • Clients et serveurs Datagram
  • Sockets sans blocage
  • Multi-Threading dans les serveurs

Mise en œuvre de l’API Stream pour la manipulation des flux de données

  • Objectif de l’API Stream
  • Obtention et sortie d’un stream
  • Opérations intermédiaires et terminales
  • Mise en œuvre des méthodes forEach, map, filter, findFirst
  • Principe de l’évaluation paresseuse
  • Intérêt de la la classe Optional
  • Réduction avec reduce et collect
  • Interface Collector et classe Collectors
  • Autres méthodes : limit, skip, sorted, min, max, distinct, allMatch, anyMatch, noneMatch, count
  • Streams parallèles, précautions d’usage

Atelier cas pratique 

Allez plus loin

Développez vos compétences

Financement avec le CPF via

le site MonCompteFormation

POUR TOUTE DEMANDE DE RENSEIGNEMENT OU DE DEVIS