Formation Maîtriser le développement Java

4 sur 5 étoiles

5 étoiles
0%
4 étoiles
100%
3 étoiles
0%
2 étoiles
0%
1 étoile
0%
Voir les 5 avis
(5 avis)
Durée 9 jours
Niveau Fondamental
Classe à distance
Possible

Vous pouvez suivre cette formation en direct depuis votre domicile ou votre lieu de travail. Plus d'informations sur notre solution de classe à distance...

Référence JDJA
Éligible CPF Non
Certification Oracle Certified Associate Java SE 8 Programmer

Cette formation Java Développement représente un cursus progressif de 9 jours visant à vous rendre autonome dans l'utilisation du langage Java et des frameworks incontournables que sont Hibernate et Spring. Vos solides compétences Java vous permettront d’être opérationnel tout en ayant acquis les bonnes pratiques du développement d'applications Java dans un contexte professionnel avec les outils de génie logiciel «vraiment» utilisés au quotidien.

Un premier module permet de vous familiariser avec l’IDE Eclipse pour mettre en œuvre les concepts objets de Java (Packages, Héritage, Interface, Classe abstraite, Exceptions). Les APIs de base (Collections, I/O, String, Date) sont explicitées en profondeur. Les participants sont également familiarisés avec les règles de nommage, le déploiement d’applications Java, l'accès à la documentation et les modernités de Java 8.

Le second module permet de présenter la persistance des données en Java (Hibernate/JPA) et de consolider votre connaissance de Java (fonctionnement interne de la JVM), tout en professionnalisant vos développements (outils de diagnostics de bugs, test unitaire avec Junit, intégration avec Maven, design patterns couramment utilisés).

Dans la dernière partie de la formation vous apprenez à utiliser Spring. Ce framework facilite et structure le développement ainsi que les tests en proposant un portefeuille complet de solutions aux développeurs. Spring s'appuie principalement sur l'intégration de trois concepts clés : l'inversion de contrôle (IoC) ou injection de dépendance, la programmation orientée aspect et une couche d'abstraction qui permet d'intégrer d'autres frameworks (comme Hibernate vu précédemment) et bibliothèques avec une plus grande facilité.

Attention, cette formation est composée de deux modules, les dates indiquées sont celles du premier module de 5 jours. Pour connaitre les dates des modules suivants, contactez notre service commercial.

Objectif opérationnel :

Développer des applications avec le langage Java et de maintenir le code associé.

Objectifs pédagogiques :

À l'issue de cette formation Java Développement, vous aurez acquis les connaissances et les compétences nécessaires pour :

  • Maîtriser son environnement de développement (IDE Java)
  • Maîtriser la syntaxe Java
  • Savoir appliquer les concepts de la programmation orientée objet au langage Java (classes, méthodes, encapsulation, héritage, constructeur, polymorphisme, classe abstraite, interfaces, relations entre classes, etc.)
  • Mettre en œuvre les principales fonctions des API standards (Collections, I/O, JDBC, Streams, …)
  • Connaître les spécificités des différentes versions de Java
  • Comprendre le fonctionnement de la JVM
  • Savoir utiliser les API NIO.2 pour manipuler les fichiers, liens symboliques et répertoires
  • Programmer en Java dans le contexte des bases de données relationnelles
  • Développer une application Java multitâches en utilisant les threads
  • Utiliser les expressions lambdas
  • Mettre en œuvre l’API Stream
  • Mettre en œuvre les modules de Java 11
  • Débugger une application

Public :

Cette formation Java s'adresse aux développeurs et aux chefs de projet

Prérequis :

Développeur possédant des connaissances sur les principes de base de la programmation objet, la formation Conception et Programmation objet (Réf DIPO) est un pré requis idéal pour tirer pleinement profit de ce stage.

Présentation de Java

Historique, caractéristiques, Rôle de la machine virtuelle  
Déclinaisons : Java SE, Java EE, Java Embedded  
Les outils fournis par le JDK  
Les évolutions de Java : Java 8, Java11+  
Importance des LTS (Long Term Support)  
Licence Oracle et alternative avec OpenJDK
Travaux Pratiques :Objectifs : Savoir installer le JDK, être capable de compiler et d’exécuter une application Java  
Description : Installation du JDK 11. Récupération de HelloWorld.java. Commandes de compilation

Outils de développement

Les apports d’un IDE : Compilation automatique, refactoring, automatisation de tâches  
Les IDEs Java les plus répandus : Eclipse, IntelliJ  
Prise en main d’Eclipse : Notion de perspective, de Vue, Préférences, MarketPlace  
Créer un projet dans Eclipse. Organisation des sources et des classes  
Exécuter une application, Configuration des exécutions  
Debugging : La perspective de Debug
Travaux Pratiques :Objectifs : Savoir installer et se retrouver dans Eclipse, Comprendre les spécificités d’un projet Java, Savoir Debugger un programme Java  
Description : Création d’un projet Java, Récupération de HelloWorld.java. Visualisation des propriétés du projet, répertoire de compilation, Version JDK. Exécution, exécution en mode DEBUG, breakpoint

Java, fondamentaux

Types primitifs, variables, opérateurs  
Branchements conditionnels, switches, boucles  
Conversions de types, tableaux  
Déduction du type des variables locales avec var
Travaux Pratiques :Objectifs : Prendre en main les bases de la syntaxe et en particulier les instructions de contrôle  
Description : Création de programmes simples avec mise en œuvre de variables de différents types, Calculs avec opérateurs, branchements conditionnels et boucles.

Classes, objets, relations entre objets

Packages, classes, objets, constructeurs, méthodes, spécificateurs d’accès  
Cycle de vie d'un objet en mémoire, instanciation d’objet avec new  
Comprendre le mot clé static  
Surcharge de méthodes  
Les énumérations  
Relations de composition, associations, héritage  
Polymorphisme, classes abstraites, interfaces, conversions entre objets  
La classe Object et ses méthodes  
Les classes enveloppes
Travaux Pratiques :Objectifs : Comprendre la POO dans Java. (Instanciation, Relations, Héritage, Interfaces)  
Description : Création d’une application avec classes en relation d’association, de composition, d’héritage, Mise en œuvre du polymorphisme.

Les exceptions

Hiérarchie des classes d’exceptions  
Exceptions contrôlées et non contrôlées  
Mécanisme try-catch, rôle de finally, try-with-ressources  
Propagation d’exceptions, récupération de Stack Trace
Travaux Pratiques :Objectifs : Distinguer exception contrôlée et non-contrôlée. Construction syntaxique de la gestion des exceptions.  
Description : Mise en place d’une gestion d’exceptions avec try-catch-finally dans une application. Utilisation du try-with-resources. Propagation d’exceptions contrôlées et non-contrôlées.

Déploiement d’applications

Principe du déploiement  
Création/utilisation de librairies jar  
Création/utilisation de jar exécutables  
Les commandes jlink et jpackage du JDK
Travaux Pratiques :Objectifs : Savoir créer un fichier jar exécutable ou non  
Description : Déployer une application à l’aide d’un fichier jar ordinaire puis à l’aide d’un jar exécutable

Les collections et la généricité

Qu’est-ce que la généricité ? Son intérêt et son usage dans les collections  
L’interface Collection, ses principales sous-interfaces : List, Set, Queue  
L’interface Map  
Les principales classes d’implémentation : ArrayList, HashSet, TreeSet, HashMap  
Redéfinition des méthodes equals et hashCode  
Parcours de collections avec itérateur, boucle for-each
Travaux Pratiques :Objectifs : Comprendre les différences entre les types de collection et savoir utiliser les principales implémentations.  
Description : Remplacement d’un tableau Java par une collection ArrayList dans un projet. Parcours des éléments. Utilisation d’un TreeSet, d’une HashMap

Les flux d'entrées-sorties

Principales classes du package java.io  
Distinction flux d’octets, de caractères  
Application aux fichiers, au réseau  
Opérations de lecture/écriture sur les fichiers.  
Manipulation de répertoires  
Bufferisation des données Sérialisation d’objets  
Présentation des API du package java.nio
Travaux Pratiques :Objectifs : Comprendre la notion d’I/O en Java. Savoir l’appliquer à la manipulation de fichiers aux connexions réseau  
Description :  Écriture/lecture dans un fichier texte, puis un fichier binaire. Manipulation de répertoires avec File. Désérialisation d’objets présents dans un fichier.

L'accès aux bases de données avec l’API JDBC

Le modèle de JDBC, ses principes généraux  
Rôle du driver  
Rappels sur les bases de données relationnelles et SQL  
Correspondance entre types SQL et Java  
Se connecter à un SGBD via JDBC  
Exécuter des requêtes de sélection, de mise à jour  
L’utilisation des PreparedStatement  
Concepts de transaction, délimiter une transaction via JDBC  
Notion de pool de connexions
Travaux pratiquesObjectifs : Etre capable de charger un pilote JDBC, d’exécuter des ordres SQL et d’exploiter les réponses, comprendre les propriétés ACID d’une transaction  
Description : Mise en place du Driver PostgreSQL dans Eclipse. Ecriture d’une classe DAO offrant les opérations CRUD sur un objet du domaine Simple. Ecriture d’un Main faisant usage de la classe DAO.

Expressions Lambda, références de méthodes

Comprendre les principes de la programmation fonctionnelle  
Syntaxe des classes internes anonymes  
Notion d’interface fonctionnelle  
Anatomie d'une expression Lambda  
Simplifier les expressions lambdas avec les références de méthodes  
Mise en œuvre des interfaces fonctionnelles : Consumer, Supplier, Predicate, Function
Travaux Pratiques :Objectifs : Comprendre l’intérêt des expressions lambda pour le développeur  
Description : Remplacement de classes internes anonymes par des expressions lambda. Mise en œuvre d’interfaces fonctionnelles de la bibliothèque. Simplification d’expressions lambdas par des références de méthodes

Introduction à l’API Stream pour la manipulation de 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 (lazy)  
Intérêt de la classe Optional  
Spécificités des traitements Big Data
Travaux Pratiques :Objectifs : Comprendre l’intérêt de l’API Stream pour le développeur  
Description : Utilisation de streams séquentiels sur tableaux et collections

Tour d’horizon des nouveautés importantes de Java 11 à Java 17

Les modules : rôle et principe  
Nouvelle syntaxe du switch  
Les blocs de texte  
Pattern matching avec instanceof  
Les records  
Les classes et interfaces scellées
Travaux PratiquesObjectifs : Savoir dans quels cas utiliser les différents éléments présentés dans ce chapitre  
Description : Quizz de validation et exemples de code commentés par le formateur

Fonctionnement de la JVM (Java Virtual Machine)

Le modèle de sécurité de Java  
Chargement des classes, rôle du Bootstrap Class Loader 
Mettre en œuvre son propre class loader 
Vérification de la structure d’un fichier .class par le class-file verifier 
Gestion de la mémoire, les différents garbage collectors 
Origines du Out Of Memory Error 
Utilisation de l’outil visualvm 
Principe et rôle d’un Security Manager 
Format des fichiers .policy
Travaux pratiquesObservation via Visualvm des cycles d'allocation/désallocation des objets et des performances associées,  
la détection de deadlocks 
Mise en œuvre d’un SecurityManager pour protéger l’accès aux fichiers du système

Classes internes, Généricité, Annotations

Classes internes static, membre, locale, anonyme 
Accès aux membres, création d’instances 
Passage de paramètres génériques aux méthodes 
Méthodes génériques 
Principe et rôle d’une annotation 
Attributs obligatoires et optionnels 
Cibles d’une annotation 
Annotations personnalisées 
Annotations multiples
Travaux pratiquesMise en œuvre de classes internes, méthodes génériques, annotations personnalisées dans une petite application

Programmation parallèle

Concepts et spécificités du multithreading par rapport à la programmation « traditionnelle » 
États d'un thread 
Synchronisation des threads 
Intérêt du pattern Immutable 
Gestion des mutex avec les interfaces Lock et Condition 
Pools de threads 
Les apports du framework Executor (invocation, ordonnancement, exécution, contrôle) 
Le package java.util.concurrent 
Les classes Atomic, les collections concurrentes
Travaux pratiquesÉcriture d’une application client/serveur en Java 
Correction d’une corruption de données dans une application

L'accès aux bases de données

Historique de l'accès aux données en Java, présentation de JDBC 
Correspondance entre types SQL et Java 
Rôle du driver 
L'API JDBC, Connection, Statement, ResultSet 
Requêtes paramétrées avec PreparedStatement 
Appel de procédure stockées avec CallableStatement 
Utilisation de l’API RowSet 
Gestion des transactions 
Notion de pool de connexions 
Problématique de l'ORM et introduction à JPA
Travaux pratiquesMise en œuvre des API JDBC pour le développement d’un DAO (Data Access Object)

Accès complet au système de gestion de fichiers avec Nio.2

Les nouvelles classes java.nio.file.Files et java.nio.file.Path 
Gestion des liens symboliques 
Manipulation de chemins, parcours de répertoires et d'arborescences 
Accès aux attributs d'un fichier 
Notification des changements dans un répertoire  
Gestion des archives Jar/zip 
Entrées/sorties asynchrones
Travaux pratiques Parcours d’arborescences pour copie/suppression de fichiers 
Synchronisation de répertoires entre arborescences

Expressions Lambda, références de méthodes

Comprendre les principes de la programmation fonctionnelle 
Syntaxe des classes internes anonymes 
Notion d’interface fonctionnelle 
Anatomie d'une expression Lambda 
Simplifier les expressions lambdas avec les références de méthodes 
Mise en œuvre des interfaces fonctionnelles : Consumer, Supplier, Predicate, Function 
Gestion des exceptions
Travaux pratiquesRemplacement de classes internes anonymes par des expressions lambda 
Mise en œuvre d’interfaces fonctionnelles de la bibliothèque 
Simplification d’expressions lambdas par des références de méthodes

Mise en œuvre de l’API Stream pour la manipulation de 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éductions avec reduce et collect 
Interface Collector et classe Collectors 
Autres méthodes : limit, skip, sorted, min, max, distinct, allMatch, anyMatch, noneMatch, count 
Streams sur fichiers et répertoires 
Streams parallèles, précautions d’usage
Travaux pratiquesUtilisation de nombreux streams séquentiels et parallèles sur tableaux et collections 
Comparaison de performances entre streams séquentiels et parallèles

Le système de modules

Principe et intérêt des modules 
Format du descripteur de module : les directives 
Utilisation des modules 
Gestion des dépendances entre modules, la commande jdeps 
Intérêt du module-path 
Notions de modules anonymes et modules automatiques 
Mise en œuvre de services 
Modularité du JDK 
Nouvelle organisation de la documentation des API Java 
Fichiers jar modulaires 
Problématique des migrations : approches bottom-up et top-down
Travaux pratiquesDécoupage d'une application en modules 
Mise en œuvre de modules anonymes et automatiques 
Mise en œuvre de services 
Migration d'une application avec mise en oeuvre des modules

Autres nouveautés de Java 11 à 17

Évolution du switch 
Blocs de texte 
Rôle et intérêt des records 
Classes et interfaces scellées 
La commande jlink 
La commande jpackage

Introduction à l’outil Maven et aux frameworks JUnit, Hibernate, Spring

Rôle et intérêt de Maven 
Structure d’un projet Maven 
Constitution d’un POM 
Résolution des dépendances 
Comparaison framework/librairie 
Présentation de JUnit pour les tests unitaires 
Présentation de Hibernate/JPA pour l’accès aux bases de données relationnelles 
Présentation de Spring pour l’injection de dépendances
Travaux pratiquesCréation d’un projet Maven faisant appel aux API Spring

Débugging d’applications

Rôle du débugging 
Présentation de l’outil de débugging dans l’IDE 
Notions de breakpoint, conditional breakpoint, watchpoint, step filtering 
Exécution en pas à pas, observation des variables, modification 
Suspension et reprise de l’exécution d’un thread
Travaux pratiquesRecherche et correction de bugs dans une application fournie

50 % du temps est consacré aux Ateliers, l'IDE Eclipse est utilisé

Ce module fournit toutes les connaissances nécessaires au passage de la certification de niveau 1 (ORACLE CERTIFIED ASSOCIATE JAVA SE 8) mais il ne suffit pas à passer la certification proprement dite car cette dernière demande une préparation intensive propre à ce type d’examen.

Pour maximiser vos chances de réussite, nous vous conseillons de suivre en complément la formation "Certification Java 8 niveau 1 - Certified Associate Java SE 8 Programmer" (JCJ8) qui est dédiée au bachotage et aux « trucs et astuces » propres à ce type d’exercice,

Les adhérents Fafiec peuvent suivre la formation Certification Java 8 niveau 1 - Oracle Certified Associate Java SE8 Programmer - Action Collective Fafiec (JCJ8F) sur 1 jour, accessible uniquement dans le cade de actions collectives Fafiec.

L'inscription aux examens officiels peut se faire librement depuis le site Pearson Vue. Cette plate-forme indépendante est accessible pour tous les parcours de formation : auto-formation, cours en ligne, cours présentiel.
Dans le cas où vous souhaiteriez vous inscrire à l'examen de certification à la suite de la formation, PLB vous propose de vous accompagner pour toutes vos démarches administratives sur la plate-forme. N'hésitez pas à solliciter notre service commercial pour plus d'informations.

Date de mise à jour du programme : 01/10/2024

Avis des participants à la formation Maîtriser le développement Java

Note moyenne de 4/5(5)

Les avis figurant ci-dessous sont issus des fiches d’évaluation que remplissent les participants à la fin de la formation. Ils sont ensuite publiés automatiquement si les personnes ont explicitement accepté que nous les diffusions.

AB
4/5

Mon avis sur le contenu du stage :

"Une partie base de java et hibernate/jpa très bien enseignée et intégrée grâce aux TPs. La partie Spring un peu plus floue de mon ressenti du fait de la largeur du framework et des exemples/TPs moins concrets"

Mon avis sur le formateur :

"Très bon pédagogue avec une expérience solide dans le domaine informatique en général et de bonnes compétences techniques. De plus une bonne animation du cours."

Yvan
4/5

Mon avis sur le contenu du stage :

"Bon support de cours pour la session sur JAVA et Spring"

Mon avis sur le formateur :

"Yann  et Jacques  sont  très compétents et avec une très bonne maîtrise technique de leur sujet"

Ce que j'ai le plus apprécié :

"La qualité des 2 formateurs"

BJ
4/5
Mon avis sur le contenu du stage: Très bonne formation, même si elle est un peu limitée temporellement pour tout voir en profondeur. Mon avis sur la salle de formation: Le problème du vidéo-projecteur et des compatibilité de versions entre Eclipse et certains plugins a fait diminuer mon appréciation du matériel.
Robert
4/5

Mon avis sur le contenu du stage :

Très bonne couverture technique large et appréciable, cours vivant . Groupe pas complétement homogène , mais ca allait quand même 

 

Alexandre
4/5

Mon avis sur la salle de formation :

Salle agréable, lumière du jour et machine puissante, porte manteaux un peu branlant


Formations Informatique
et Management
en ligne à ce jour

+
Stagiaires dans nos salles
de cours sur
l'année

%
De participants satisfaits
ou très satisfaits de nos
formations


Formateurs experts
validés par
PLB