Accueil    Formations    Informatique    Langages et développement    Développeur Java    Java - Développement avancé

Partager cette formation Télécharger au format pdf Ajouter à mes favoris

Vidéo de présentation

Cette formation peut être financée grâce au CPF (Compte Personnel de Formation). Le Compte Personnel de Formation permet d'acquérir des droits à la formation professionnelle, comptabilisés en euros, que chacun peut utiliser avec ou sans l'accord de son employeur tout au long de sa vie active (y compris en période de chômage) pour suivre une formation qualifiante ou certifiante. 

Consultez le montant de vos droits CPF

Objectifs pédagogiques / Compétences visées

  • Reconnaître les aspects avancés du Java
  • Comparer le multi-threading et la programmation concurrente
  • Gérer l'asynchronisme
  • Créer vos propres annotations
  • Utiliser Java Reflection API
  • Exploiter les Web Services et les Web Sockets
  • Reconnaître JMS et JMX
  • Utiliser les lambda expressions et les streams.

Niveau requis

Avoir une connaissance pratique du langage Java ou avoir suivi le cours JAV-SE "Java - Les fondamentaux et le développement Java SE".

Public concerné

Développeurs, architectes et chefs de projets techniques.

Programme

Jour 1

Quelques aspects évolués de Java

  • Classes anonymes
  • Nouvelles boucles for
  • Les annotations intéressantes
  • Les varargs
  • Les tableaux
  • Le try-with-resource
  • NIO 2 et Non-blocking I/O
Exemple de travaux pratiques (à titre indicatif)
  • Mise en oeuvre des divers apports de Java avec try-with-resource, NIO, boucles for

Threading et concurrence

  • Thread et Runnable
  • Problèmes du multi-threading
  • Attente et synchronisation
  • Thread pools et environnements "thread safe"
  • Package java.util.concurrent
  • Le Framework Executor
  • Asynchronisme en Java
  • Future et Callable
  • Le Fork and Join
Exemples de travaux pratiques (à titre indicatif)
  • Création d'un projet mettant en oeuvre le multi-threading
  • La synchronisation entre threads
  • La protection de données entre threads
  • La programmation concurrente
  • Le Fork and Join

Jour 2

Echange de données avec les Web Services en Java

  • Clients et serveurs
    • SOAP avec JAX-WS et CXF
    • REST avec JAX-RS et Jersey
Exemples de travaux pratiques (à titre indicatif)
  • Reprise du projet
  • Ajout de Web Services REST entre composants serveur et client

Echange de données avec les Web Sockets en Java

  • Mise en oeuvre de Web Sockets en Java
    • Côté serveur
    • Côté client
Exemples de travaux pratiques (à titre indicatif)
  • Reprise du projet
  • Ajout de Web Sockets entre composants
  • Affichage de messages non sollicités par le client

Echange de données avec RMI

  • Echange de données entre composants Java
Exemples de travaux pratiques (à titre indicatif)
  • Reprise du projet
  • Ajout d'échange de composants Java via RMI

Jour 3

Programmation fonctionnelle en Java

  • La programmation fonctionnelle
  • Les implications de la programmation fonctionnelle
  • Avantages et inconvénients de la programmation fonctionnelle

Les lambda en Java

  • S'approcher de lambda sans Java 8
  • Les expressions lambda
  • Les interfaces fonctionnelles
  • Liste des interfaces fonctionnelles
  • Paramètres d'une expression lambda
  • Cas d'utilisation des expressions lambda
  • Les références de méthodes dans les expressions lambda
Exemples de travaux pratiques (à titre indicatif)
  • Création d'un nouveau projet
  • Utilisation des interfaces fonctionnelles fournies et créées
  • Utilisation des expressions lambda sous différentes formes
  • Simplification de la programmation avec les lambda

Jour 4

Les streams

  • Présentation générale des streams
  • Créer des streams
  • Opérations intermédiaires sur les streams
  • Opérations terminales
Exemples de travaux pratiques (à titre indicatif)
  • Création d'un nouveau projet
  • Application de la gestion des streams à des flux de données fournis
  • Opérations de création, intermédiaires et finales

Annotations et "reflection"

  • Annotations prédéfinies
  • Le processeur d'annotations
  • Définition d'interface (@Interface)
  • Traitement à la compilation ou à l'exécution (@Retention)
  • Cible des annotations (@Target)
  • Cas d'utilisation des annotations
  • L'API Reflection
  • Chargement et appel dynamique
Exemples de travaux pratiques (à titre indicatif)
  • Création d'un nouveau projet
  • Création d'une nouvelle annotation et exploitation de celle-ci au runtime

JMS (Java Message Service)

  • La communication asynchrone par messages
  • Les interfaces et les classes de JMS
  • Les providers de message
  • La communication par Queue et par Topic

JMX (Java Management Extensions)

  • Avantages d'administration des composants
  • Les concepts de JMX
    • MBean
    • MBeanServer
    • Agent
    • Connector
  • La console d'administration
Exemples de travaux pratiques (à titre indicatif)
  • Création d'un projet JMS permettant l'échange de données entre composants, avec Queue et Topic
  • Démonstrations pratiques de l'administration de composants avec JMX

JNI (Java Native Interface) et JNA (Java Native Access)

  • Appel natifs depuis Java

Le scripting en Java

  • Exécution d'un script depuis Java
Exemples de travaux pratiques (à titre indicatif)
  • Appel d'un point d'entrée de DLL depuis Java avec JNA
  • Exécution de plusieurs scripts Javascript depuis Java

Certification (en option)

  • Prévoir l'achat de la certification en supplément
  • L'examen (en français) sera passé le dernier jour, à l'issue de la formation et s'effectuera en ligne
  • Il s'agit d'un QCM dont la durée moyenne est d'1h30 et dont le score obtenu attestera d'un niveau de compétence

Modalités d’évaluation des acquis

  • En cours de formation, par des études de cas ou des travaux pratiques
  • Et, en fin de formation, par un questionnaire d'auto-évaluation ou une certification (M2i ou éditeur)

Compétences attestées par la certification

  • Développer des applications ou logiciels conformément au cahier des charges
  • Intégrer un produit ou un programme à partir des outils, méthodes ou langages
  • Etre autonome dans l'exécution des tâches
  • Préparer les plans de tests d'une application
  • Conduire les tests unitaires
  • Optimiser les tests de performance d'une application
  • Assurer la veille technique et concurrentielle.

Partager cette formation Télécharger au format pdf Ajouter à mes favoris

Vous souhaitez suivre cette formation ?

Cette formation est disponible en présentiel ou en classe à distance, avec un programme et une qualité pédagogique identiques.

Choisissez la modalité souhaitée pour vous inscrire :

Votre société a besoin d'une offre personnalisée ? Contactez-nous

Testez vos connaissances

Nos quizz vous guident dans le choix de formation.
Évaluez votre niveau de pré-requis pour découvrir la formation faite pour vous.

Accédez au test de connaissance

Faites-nous part de votre projet de formation, nous sommes là pour vous guider.

Contactez-nous