Description
Ce programme de formation s'adresse aux développeurs souhaitant approfondir leurs compétences en Java, en se concentrant sur le test, le débogage et l'optimisation des applications. Les participants apprendront les fondamentaux de Java SE, la gestion de la mémoire, ainsi que des concepts avancés tels que les types génériques, les streams, et les annotations. La formation couvre également l'intégration avec des bases de données relationnelles via JDBC et des frameworks tels qu'Hibernate. Ce cursus est idéal pour ceux qui souhaitent maîtriser Java dans des environnements professionnels complexes.
Objectifs
- Savoir tester, debugger et optimiser ses applicationsMaîtriser les aspects avancés du langage JavaComprendre comment appliquer les principaux Frameworks et librairies Java Comprendre le modèle de sécurité et le chargement des classes JavaSavoir programmer en Java dans le contexte des bases de données relationnellesAppréhender les nouveautés Java
Récapitulatif
Public
Développeurs, chargés de développement d'applications informatiques, chefs de projets proches du développement…
Prérequis
Niveau : 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.
Techniques (formations en classe virtuelle) : Vous devez disposer d'un ordinateur connecté à internet, d'un micro et d'une caméra
Méthodes et modalités pédagogiques
Formation réalisée en Présentiel, Distanciel ou Dual-Learning selon la formule retenue.
Moyens et supports pédagogiques
Mise à disposition d'un poste de travail sur nos formations en Présentiel.
Mise à disposition de nos environnements de visio sur nos formations en Distanciel
Remise d'une documentation pédagogique numérique pendant la formation
La formation est constituée d'apports théoriques, d'exercices pratiques et de réflexions
Dans le cas d'une formation sur site Entreprise, le client s'engage à avoir toutes les ressources pédagogiques nécessaires (salle, équipements, accès internet, TV ou Paperboard...) au bon déroulement de l'action de formation conformément aux prérequis indiqués dans le programme de formation
Modalités de suivi et d'évaluations
Auto-positionnement des stagiaires avant la formation
Émargement des stagiaires et formateur par 1/2 journée
Exercices de mise en pratique ou quiz de connaissances tout au long de la formation permettant de mesurer la progression des stagiaires
Auto-évaluation des acquis de la formation par les stagiaires
Questionnaire de satisfaction à chaud et à froid à l'issue de la formation
Programme détaillé
Savoir tester, déboguer et optimiser ses applications (1/2)
- Hsitorique de JAVE SE
- JVM, JRE et JDK
- Édition Oracle ou OpenJDK et licences respectives
- Code source et bytecode
- Packages et modules
- Shell Java
- IDE, tests et débogueur
Savoir tester, déboguer et optimiser ses applications (2/2)
- Gestion de la mémoire
- Pile et tas
- Le ramasse miette
- Référence Forte
- Référence Faible
- Référence fantôme
- Monitoring
- Console Java
- Java Mission Control (version Oracle uniquement)
Maîtriser les aspects avancés du langage Java (1/6)
- Autoboxing des types primitifs
- Les varargs
- Les énumérations complexes
- Les données temporelles depuis Java 8
- Création, formatage, parsing des données temporelles
- Fuseaux horaires et paramètres locaux
Maîtriser les aspects avancés du langage Java (2/6)
- Interface fonctionnelle
- Méthodes « default » et « static » des interfaces
- Les fonctions anonymes
- Référence de méthode objet
- Référence de méthode sur un objet particulier
- Référence de constructeur
- Référence, héritage et liaison tardive
- Référence et surcharges
- Référence et autoboxing
- Référence et conversions implicites sur les nombres
Maîtriser les aspects avancés du langage Java (3/6)
- Inférence de type
- Déclaration de variable avec mot clé var
- Effacement de type
- Types génériques avec lower ou upper bound
- Covariance et contravariance
- Méthode générique
Maîtriser les aspects avancés du langage Java (4/6)
- Collections de Java
- Collections simplifiées pour l'écriture des tests
- Itérateurs
- Instruction for "each" vs méthode forEach
- Boîte à outils java.util.Collections?
Maîtriser les aspects avancés du langage Java (5/6)
- Les streams d'objets
- Les principes du map/reduce
- Interfaces fonctionnelles dédiées au map/reduce
- Filtrer les données
- Transformation des données
- Collecte des données
- Gestion particulière des types primitifs
- Utilisation des collecteurs prédéfinis
- Écrire un collecteur custom
- Génération de streams
- Combiner des streams
Maîtriser les aspects avancés du langage Java (6/6)
- Les annotations
- Annotations standards et Méta-Annotations
- Rétention des annotations
- Cible des annotations
- Les arguments d'une annotation
- Lecture par réflexion d'une annotation
- Traitement avec javac ou javax.annotation.processing
- Manipulation de bytecode avec Javassist
Comprendre le modèle de sécurité et le chargement des classes Java
- API d'introspection
- La classe Class<T>
- Les autres classes du méta modèle
- Instanciations et appels dynamique
- Restriction de sécurité
- Exploitation dynamique des annotations
Comprendre comment appliquer les principaux frameworks et bibliothèques Java
- Données optionnelles
- Interface Optional<T>
- Types primitifs optionnels
- Traitement impératif optionnel
- Transformation d'une donnée optionnelle
- Objets optionnels imbriqués
Savoir programmer en Java dans le contexte des bases de données relationnelles
- Spécification JDBC ET DRIVERS JDBC
- ORM, JPA et Hibernate
- Configuration ORM et gestion des sessions
- Mapping d'une classe simple avec une table
- Types temporels, énumérations
- Collections simples
- Mapping d'associations
- CRUD sur les objets
- Requêtes JPQL, HQL ou SQL natif
- Requêtes avec l'API Criteria