Dernière mise à jour le 26/03/2023

JAVA, programmation avancée

Informations générales

Type de formation : Formation continue
Domaine : Développement
Filière : "Java, .Net, C++"
Rubrique : Java - Jee - Android
Formation éligible au CPF : Non
Formation Action collective : Oui Code ACO : ATLAS

Objectifs & compétences

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

Public visé

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

Pré-requis

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

Programme

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 mémoire
• 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)
o @Test
o @BeforeEach / @BeforeAll
o @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

Modalités

Modalités : en présentiel, distanciel ou mixte – Horaires de 9H à 12H30 et de 14H à 17H30 soit 7H – Intra et Inter entreprise
Pédagogie : essentiellement participative et ludique, centrée sur l’expérience, l’immersion et la mise en pratique. Alternance d’apports théoriques et d’outils pratiques.
Ressources techniques et pédagogiques : Support de formation au format PDF ou PPT Ordinateur, vidéoprojecteur, Tableau blanc, Visioconférence : Cisco Webex / Teams / Zoom
Pendant la formation : mises en situation, autodiagnostics, travail individuel ou en sous-groupe sur des cas réels

Méthodes

Fin de formation : entretien individuel
Satisfaction des participants : questionnaire de satisfaction réalisé en fin de formation
Assiduité : certificat de réalisation (validation des acquis)
Contact : contact@astonbysqli.com
Code de formation : F28049

Tarifs

Prix public : 2295
Tarif & financement :
Nous vous accompagnons pour trouver la meilleure solution de financement parmi les suivantes :
  • Le plan de développement des compétences de votre entreprise : rapprochez-vous de votre service RH.
  • Le dispositif FNE-Formation.
  • L’OPCO (opérateurs de compétences) de votre entreprise.
  • Pôle Emploi sous réserve de l’acceptation de votre dossier par votre conseiller Pôle Emploi.
  • CPF -MonCompteFormation
Contactez nous pour plus d’information

Lieux & Horaires

Durée : 28 heures
Délai d'accès : 8 Jours

Prochaines sessions

Handi-accueillante Accessible aux personnes en situations de handicap. Pour toutes demandes, contactez notre référente, Mme Rizlene Zumaglini Mail : rzumaglini@aston-ecole.com

à voir aussi dans le même domaine...

Formation continue

"Java, .Net, C++"

F28028

Les tests Unitaires en Java

Comprendre l'impact (cout, temps) et le rôle des tests unitaires dans un projet
Pouvoir développer de bons tests unitaires sur l'API Junit dans sa version 4 et 5
Comprendre ce qu'est un Mock et comment en faire usage

14 heures de formations sur 2 Jours
En savoir plus

Formation continue

"Java, .Net, C++"

F28039

Développer une application graphique en C++ avec Qt

Maîtriser le développement d'écrans avec Qt
Comprendre le mécanisme de la gestion d'évènements
Savoir utiliser les principales API non graphiques de Qt : accès aux données, réseau, fichiers
Maîtriser le développement en QML avec QtQuick

28 heures de formations sur 4 Jours
En savoir plus

Formation continue

"Java, .Net, C++"

F28029

Mise en oeuvre du langage c ++

Connaître les concepts de la programmation orientée objet
Maîtriser la syntaxe du langage C++
Savoir développer une application C++ d'accès aux fichiers

35 heures de formations sur 5 Jours
En savoir plus

Formation continue

"Java, .Net, C++"

F28040

L’intégration continue, un enjeu pour la qualité

Maîtriser les phases de mise en oeuvre d’une intégration continue
Maîtriser les maillons d'une chaîne d'intégration continue
Automatiser la construction de vos applications
Mettre en place un tableau de bord de vos intégrations
Générer des rapports liés à l'activité de développement et à la qualité
Valider le respect des normes de développement par les développeurs via Sonar

21 heures de formations sur 3 Jours
En savoir plus

Formation continue

"Java, .Net, C++"

F28030

C++ Programmation avancée

Maîtriser les concepts avancés du C++
Connaître les principales nouveautés du C++ 11

28 heures de formations sur 4 Jours
En savoir plus

Formation continue

"Java, .Net, C++"

F28041

Sécurité des applications Web

Comprendre les différentes sécurités existantes autour des serveurs WEB, navigateurs, etc.
Savoir gérer des tests de pénétration sur une application WEB
Secure coding Avoir les bonnes méthodes et pratiques dans la conception d'une application WEB
Acquérir les compétences nécessaires pour créer un programme de sécurité des applications
Savoir couvrir les exigences demandées par les ISO 27001/2 à savoir
Utiliser la norme ISO 27034 - sécurité des applications

35 heures de formations sur 5 Jours
En savoir plus