Java avancé

3 jours II Code CNCP : 2231 II Certif info : 94013

/Java avancé

Cette formation Java avancé va vous permettre d’approfondir vos connaissances du langage Java  afin d’aborder le développement d’application plus complexe.

Les objectifs de la formation Java avancé

A l’issue de la formation « Java avancé », les apprenants auront les capacités 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
Lien vers site CPF

Les prérequis de la formation Java avancé

  • La formation Java avancé  nécessite les prérequis suivants :
  • Connaissances élémentaires de la programmation en Java (formation Cegefos : « Java : les fondamentaux » )
  • Vous n’avez pas les prérequis nécessaires pour la formation Java avancé ? Contactez-nous pour étudier ensemble un parcours sur mesure et garantir ainsi la réussite de votre projet.

Lien vers site CPF

Le public de la formation Java avancé

La formation certifiante «Java avancé», s’adresse à tout public salarié, demandeur d’emploi ou en reconversion professionnelle et souhaitant acquérir des compétences avancés pour le développement d’applications complexes avec Java, notamment :

  • 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
Lien vers site CPF

0

Certif Info

0

Code CNCP

0

Jours

0

Heures

Contenu de la 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 

Une attestation d’assiduité sera délivrée après la validation de toutes les compétences du module Java avancé

Modalités De Formations

Java avancé

Le module Java avancé est disponible en 3 modalités : E-learning tutoré, Blended Learning et en présentiel.

FOAD / E-Learning tutoré

La formation certifiante Java avancé est disponible en e-learning tutoré. Vous serez accompagné par un formateur / Tuteur tout au long de la formation.

Blended-Learning

La formation certifiante Java avancé est disponible en Blended learning. La partie apprentissage se déroule en e-learning, et les projets fil rouge en présentiel.

Présentiel

La formation certifiante Java avancé est disponible en présentiel ou en distanciel. La formation sera animée par un formateur à distance ou en classe.

Financement et Éligibilité

de la formation Java Avancé

CPF

CPF « Compte Personnel de Formation.

VAE

VAE: Validation des Acquis de l’Expérience.

AIF

AIF : Aide Individuelle à la Formation par Pôle Emploi.

CPF de transition

CPF de transition pour une Reconversion Professionnelle.

Contrat PRO

Contrat d’alternance ou de Professionnalisation.

POEc

Préparation Opérationnelle Emploi Collective.

PDC

Plan de Développement de Compétences de l’entreprise.

AFPR

Action de Formation Préalable à l’Embauche.

POEi

Préparation Opérationnelle Emploi Individuelle.

Besoin d'un