Aller au contenu principal

ASTON INSTITUT : 02. JAVA, programmation avancée

Durée

28 heures

Modalités

Formation
  • Classe virtuelle
  • Présentiel
Évaluation

Tout au long de la formation, le formateur s'assure de la compréhension et de l'assimilation des concepts via des QCM et exercices. Après la formation : évaluation à chaud et à froid.

Prix

Inter
La formation en Inter est dispensée pour un groupe de salariés d’entreprises différentes.
1234.8€ HT / personne
Intra
La formation en Intra est dispensée pour un groupe de salariés d’une seule et même entreprise.
4939.2€ HT / groupe
4 stagiaires minimum

Public

Développeurs, chargés de développement d’applications informatiques, chefs de projets proches du développement…

Pré-requis

Maitriser le langage Java, connaître les concepts de bases de données relationnelles et du langage SQL, disposer d’une expérience en programmation Java.

Objectifs pédagogiques

- Maîtriser les aspects avancés du langage Java 

- Comprendre comment appliquer les principaux Frameworks et librairies Java. Comprendre le modèle de sécurité et le chargement des classes Java 

- Savoir programmer en Java dans le contexte des bases de données relationnelles 

- Savoir tester, debugger et optimiser ses applications 

- Appréhender les nouveautés Java

Programme détaillé

Chapitre 1 : Invariants et records 

  • Rappel sur les invariants (String, Class ...) 
  • Les records en Java 16 
  • Création d'un record 

Chapitre 2 : Evolution des interfaces 

  • Rappel 
  • Evolution de l'interface du Java 5 à Java 9 

Chapitre 3 : Les génériques 

  • Le rôle des wrappers 
  • Les méthodes generic 
  • Créer des classes et interface génériques 
  • Utiliser l'héritage avec les generics 
  • Faire usage de la syntaxe avancée *, ?, extends, super 

Exemple d’exercice : En partant d'un code trop 'copié/collé' d'accès aux données, mise en place des generics pour gagner en maintenabilité 

Chapitre 4 : Les annotations 

  • Créer ses propres annotations 
    • @Retention
    • @Target
    • @Inherited 

Chapitre 5 : La gestion de la memoire 

  • Les options du Garbadge Collector 
  • Les options de la JVM 
  • Les classes Java dans java.lang.ref
    • WeakReference
    • PhantomReference
    • SoftReference 

Atelier pratique : Mise en pratique des WeakReference avec une attention particulière sur les effets de bords possibles. 

Chapitre 6 : L'introspection / réflexion en JAVA 

  • Les objectifs et les principes du réflexif. 
  • L'objet java.lang.class 
  • Les objets du package java.lang.reflect
    • Method 
    • Field
    • Constructor
    • Modifier
    • Parameter 
  • Instanciation, appel, récupération d'attribut en introspection 

Chapitre 7 : Les modules en JAVA 9 

  • Définition 
  • Exposition des packages 
  • Gestion des dépendances de module 
  • Utilisation et exposion de services 
  • L'archive via jmode 
  • Les mini VM avec jlink 

Atelier pratique : En repartant d'un exercice simple, nous allons créer des modules afin de bien découper le projet. 

Chapitre 8 : Le multitâche  

  • Rappels sur les Thread et Runnable 
  • Définition pour un objet Thread Safe 
  • Le parallélisme avancé (Futur, Executor, Callable, ..) 
  • Le ForkJoinPool 
  • Les objets dits atomiques  
  • Les Sémaphores (verrous) 

Atelier pratique : Calcul du nombre de décimal de PI en traitement parallèle. 

Chapitre 9 : La gestion des flux en NIO 

  • Les entrées/sorties 
  • Sérialisation/désérialisation d’objets 
  • L’API NIO : Paths, Files, Buffer, Channel, WatchService, View 

Chapitre 10 : L'acces aux donnees via JPA 

  • Rappel JDBC 
  • Notion de DataSource et de Pool de connexions  
  • Le Mapping Objet Relationnel (ORM) 
  • L'EntityManger, l'EntityMangerFactory 
  • Le transactionnel en JPA 
  • Le JPQL un remplaçant du SQL 
  • Focus sur la sécurisation 
    • Eviter les login/pwd dans son code
    • Eviter l'injection SQL 

Atelier pratique : Chargement en parallèle de plusieurs fichiers textes afin de remplir une base de données de jeux d'essais. 

Chapitre 11 : Les tests unitaires en JUnit 

  • Objectif des tests unitaires 
  • Historique des 3 versions de JUnit (v3, 4 5) 
  • Annotations principales (JUnit 5)
    • @Test
    • @BeforeEach / @BeforeAll
    • @AfterEach / @AfterAll 
  • Les Assertions et Assumptions 
  • Les suites de tests 
  • Les familles / catégories de test (@Tag) 
  • Les tests paramétriques 
  • Les tests répétés, annotation @RepeatedTest 
  • Les annotations conditionnelles
    • @EnabledOnXxx
    • @DisabledIfXxx 
  • Les objets injectables en JUnit 5
    • TestInfo, TestReporter, RepetitionInfo 
  • Le TDD avec Mockito 
  • Définition du covrage et comment l'obtenir
    • Via son IDE
    • Via le plugin jacoco
    • Visualisation dans SonarQube 

Atelier pratique : Mise en place des tests unitaires sur l'application écrite précédemment. Utilisation des mock pour la partie d'accès aux données

 

Sessions

Filtrer les résultats
Modalités pédagogiques
Formation synchrone se déroulant avec la présence physique du (des) formateur(s) et du (des) apprenant(s) réunis dans un même lieu de formation.
Formation combinant des séquences en présentiel et des séquences à distance synchrones ou asynchrones.
Formation à distance, asynchrone, s’appuyant sur une plateforme d’apprentissage, pouvant être complétée par d’autres modalités de formation à distance (visio-conférence…)
Formation à distance, synchrone, s’appuyant sur un dispositif de visio-conférence. La classe virtuelle recrée à distance les conditions d’une formation en salle traditionnelle.
Type de formation
La formation en Inter est dispensée pour un groupe de salariés d’entreprises différentes.
La formation en Intra est dispensée pour un groupe de salariés d’une seule et même entreprise.
Options
Les compétences professionnelles visées par la formation sont validées via un test permettant d’obtenir une certification officielle.
Ces sessions ne peuvent être ni annulées ni reportées par l’organisme de formation.