Accueil > Développement informatique et DevOps > Cycle Programmation Java
Formation #DEV43

Formation Cycle Programmation Java

Durée : 10 jours

Code : DEV43


Sessions programmées :

Du 14 au 25 Fév. 2022

Du 15 au 26 Août 2022

Fin d'Inscription :
Le Bulletin d'Inscription doit être rempli, cacheté, signé et envoyé par email : Au minimum 15 JOURS OUVRÉS avant la date de formation.
Si vous avez un besoin URGENT et que vous souhaitez une date de formation plus proche que les sessions programmées (minimum 15 à 20 jours ouvrés à date de votre demande)

Objectifs

  • Découvrir les différents concepts orientés-objets en Java
  • Acquérir les connaissances nécessaires à la programmation Java afin d’intégrer directement une équipe projet
Programme
1/ Les fondamentaux de la programmation
  • Définitions : programme, langage
  • Quel langage pour quelle application
  • Les compilateurs
  • Les exécutables
  • Responsabilités d'un programmeur
  • Définition d'un algorithme
  • Les besoins d'algorithme
2/ Présentation de l’écosystème Java
  • Introduction à Java (J2SE/J2E/J2ME et la JVM)
  • Les composants techniques de Java (JDK)
  • Les principales APIs
  • Les outils Java : JavaDoc, Jar et co
  • Différents IDE : Eclipse, NetBeans et IntelliJ
3/ Un premier programme
  • Création d'un programme simple
  • Compilation et exécution du programme
  • Librairie : Définition, rôle, usage
4/ Recommandations de programmation
  • Convention de nommage et syntaxique
  • Commentaires
  • Lisibilité des programmes : indentation du code, découpage du code...
5/ Syntaxe de base du langage
  • Les variables : déclaration, Initialisation
  • Présentation des différents opérateurs
  • Les structures de contrôle
6/ Les procédures et les fonctions
  • Définitions : procédure, fonction
  • Le passage de paramètres
  • Retour d'une fonction
  • Notion de passage par adresse
  • Appel de fonctions
7/ Les concepts orientés Objet en Java
  • Les classes, les attributs, les méthodes
  • Les constructeurs
  • Les références de méthodes
  • L'encapsulation
  • Les imports et packages
  • Intérêt des classes abstraites et des interfaces
  • Mise en œuvre des interfaces
  • L’héritage, le polymorphisme
  • Unboxing et l’autoboxing
8/ Les exceptions
  • Notion d'une exception
  • La gestion des erreurs
  • Les diverses exceptions en Java
  • Les blocs try/catch/finally
  • Gestion locale ou centralisée
  • Définir ses propres exceptions
9/ Utilisation des bibliothèques standards
  • Les tableaux
  • Les collections
  • Les dates et calendriers
10/ Entrées / sorties
  • Accès au système de fichiers
  • Les fichiers bruts
  • Les fichiers texte
  • Les fichiers de propriétés
  • Récupération de propriétés
  • La sérialisation
  • La persistance des objets dans un fichier sauvegarde
11/ Accès aux bases de données relationnelles
  • La librairie JBDC
  • Connexion à une base de données
  • Exécution d'une requête
  • Requêtes paramétrées et requêtes stockées
12/ Fichiers de propriétés et L’API d’internationalisation (i18n)
  • Accès et manipulation des fichiers
  • Internationalisation (i18n)
  • Resource Bundle
13/ API pour les fichiers de logs
  • Générer des Logs avec Log4j
  • Filtrer les Logs par niveau d'importance
  • Configuration de destination(s)
14/ Java et les tests unitaires
  • Tests unitaires avec JUnit
  • Génération des rapports
  • Couverture de code : Introduction à la notion et exemples de frameworks
  • Options avancées de la perspective Debug
15/ Fonctionnement de la JVM
  • Chargement des classes, Classloader, classpath
  • Gestion de la mémoire, le garbage collector
  • Les aspects avancés de la JVM
  • Mécanismes liés à la JVM pour assurer la sécurité
  • Modèle de sécurité : permissions, politiques et domaines de sécurité
  • Gestionnaire de sécurité et contrôle d’accès
  • La réflexion, les annotations
  • Les outils d'inspection, surveillance, traces
16/ Evolutions de la syntaxe Java
  • Evolutions de Java 5 à Java 8
  • Structures de contrôles « switch » avec des objets String
  • Faciliter la lecture des valeurs littérales
  • Traitements des chaînes de caractères et expressions régulières
17/ Hibernate et JPA
  • Rappels de l’accès aux données, JDBC et DAO
  • Hibernate et JPA: présentation
  • Architecture logicielle d’Hibernate et de JPA
  • Architecture Technique d’Hibernate et de JPA
  • Mise en place de l'environnement
  • Les objets et les différents mappings
  • Les langages de requête Hibernate QL et JQPL
18/ Introduction au framework Spring
  • Présentation des différents modules de Spring
  • L’injection des dépendances (IoC)
  • Programmation Orientée Aspect avec Spring AOP
  • Les pools de connexions et les transactions
  • Intégration avec Hibernate
  • Spring MVC
19/ La programmation concurrente
  • Concepts et spécificités du multithreading par rapport à la programmation « traditionnelle »
  • Mise en œuvre des Threads
  • Cycle de vie des Threads
  • Ordonnancement des Threads
  • Synchronisation des threads
  • Le verrouillage des méthodes et des instructions
  • Les moniteurs
  • Principes de la conception d'applications multi threads
  • La librairie concurrente
  • Les nouvelles collections
  • Les nouveaux outils de synchronisation
  • L’utilisation du framework Fork/Join
  • La Classe Phaser
20/ La programmation réflexive
  • Objectifs et principes
  • Le chargement de classes
  • L'objet Class
  • Découverte dynamique des informations
  • Instanciation dynamique
  • Invoquer une méthode
21/ Expressions Lambda, références de méthodes
  • Objectifs et 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
  • Interfaces fonctionnelles
22/ L’API Stream
  • 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 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
23/ La communication par messages JMS
  • Les principes de la communication par messages
  • Présentation de l'Architecture MQ et JMS
  • Communication Point-To-point avec les Queues
  • Communication Publish/Subscribe avec les Topics
Approche Pédagogique

Approche Pédagogique

  • Pédagogie très opérationnelle fondée sur l'alternance entre théorie et pratique
  • Cas pratiques
  • Remise d’outils
  • Echanges d’expériences
Participants

Participants

  • Chefs de projets
  • Architectes logiciels
  • Développeurs
Dates

Dates

  • Du 14 au 25 Fév. 2022
  • Du 15 au 26 Août 2022
  • Fin d'Inscription :
    Le Bulletin d'Inscription doit être rempli, cacheté, signé et envoyé par email : Au minimum 15 JOURS OUVRÉS avant la date de formation.