Java : les fondamentaux

Java : les fondamentaux

Les bases du développement en langage Java


Référence IDL-JAFO-F
Durée 5 jour(s)

Pour une session intra ou sur mesure

Demander un devis
Débutant Développement logiciel

Au cœur des applications d’entreprise, le langage Java est a réussi à s’imposer comme l’un des langages orienté-objet les plus utilisé dans le monde.

Cette formation a pour objectif d’acquérir de solides bases sur le langage Java et de permettre une initiation progressive aux différentes APIs coeurs.

Les entrées-sorties, l’accès aux bases données, les dernières nouveautés de Java seront présentées ainsi qu’une introduction technique complète à un environnement de développement standard pour Java (Eclipse, etc.).

Objectifs pédagogiques

Les objectifs pour un candidat ayant suivi cette formation sont :

  • Maîtriser la syntaxe et les principales APIs du langage Java.
  • Etre en mesure d’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.).
  • Savoir programmer en Java en toute autonomie.
  • Mettre en œuvre les principales fonctions des API standards (Collections, I/O, JDBC, etc.).
  • Être en mesure de manipuler des données à l'aide de JDBC et introduction à la persistance transparente avec JPA.
  • Connaître les spécificités des différentes versions de Java.
  • Savoir appliquer le paradigme de la programmation fonctionnelle.
  • Pouvoir tester et débuguer une application Java.
  • Maîtriser l’environnement de développement (IDE Java).
  • Débugger une application.

Public concerné

Cette formation technique s’adresse à toute personne désireuse d’acquérir les fondamentaux du développement Java, aux développeurs et chargés de développement d'applications informatiques.

Prérequis

Développeur ayant des connaissances sur les principes de base de la programmation objet.

Programme de la formation

Présentation de l'écosystème Java

  • Introduction à Java et à ses déclinaisons J2SE/J2E/J2ME et la JVM.
  • Présentation de l’architecture d’une application respectant le parton d’architecture MVC et positionnement de Java.
  • Présentation des composants techniques de Java (JDK) ainsi que des principales APIs.
  • Les outils Java : JavaDoc, Jar et co.
  • Panorama des principaux IDE : Eclipse, NetBeans et IntelliJ.

L'IDE Eclipse

  • Notions de workspace, vues et perspectives.
  • Présentation des différents wizard.
  • Extensions avec Eclipse Marketplace.
  • Les accès aux bases de données et outils serveurs dans Eclipse.

Les bases du langage : la syntaxe

  • Déclaration de variables.
  • Les constantes et les types énumérés.
  • Les bonnes pratique d’écriture et de nommage.
  • Les opérateurs.
  • Instructions de contrôle.
  • Boucles et itérations.
  • Les tableaux.
  • La classe String.
  • La classe Scanner pour débuter avec les entrées/sorties.
  • Notions de visibilité.
  • Variable de classe vs. variable d'instance.
  • Les blocs "static".

Les concepts orientés Objet en Java

  • La classe et ses attributs ainsi que les bonnes pratiques de nommage.
  • Les accesseurs.
  • Le mot-clé this.
  • Méthodes (nombre d'arguments fixe et variable).
  • Les constructeurs avec et sans paramètres, notion de surcharge.
  • Destructeur avec le garbage collector et la méthode finalize().
  • Les références.
  • La méthode toString().
  • La méthode equals() pour vérifier l’égalité des objets.
  • L'encapsulation, les imports de packages, les imports static.
  • Les classes Wrappers.
  • Unboxing et l'autoboxing.
  • Le widening et narrowing (avec les notions de upcasting et downcasting).
  • Les génériques en Java.
  • L’API Date.
  • La classe Optional.

Factorisation du code avec le concept d’héritage

  • Factorisation et spécialisation avec les mécanisme d’héritage.
  • Bonnes pratiques et conseils méthodologiques pour identifier les hiérarchies d’héritage.
  • Les mots clés : extends, instanceof, super, @override, protected.
  • Redéfinition des méthodes dans les classes filles.
  • Notion de polymorphisme.
  • Les classes abstraites.

Les interfaces

  • La notion de contrat et vision client vs. vision développeur.
  • Implémentation de plusieurs interfaces par une classe.
  • Les méthodes default, private et static depuis Java 9.
  • Les mots-clés, l’héritage multiple entre plusieurs interfaces.

Les collections en Java

  • Présenter l’API des collections en Java.
  • Savoir choisir entre les différentes interfaces SET, LIST et MAP.
  • Pratiquer les classes d’implémentations les plus connues.
  • Redéfinition des méthodes equals() et hashCode().
  • Les interfaces comparable et Comparator pour les ensembles triés.
  • Parcours des collections.
  • La classe Stream et les filtres.

Gestion des erreurs avec les exceptions

  • Qu'est-ce que qu'une exception ?
  • Les différentes exceptions en Java.
  • Les blocs try/catch/finally.
  • Gestion locale ou centralisée.
  • Créer ses propres exceptions métier.

Les entrées/sorties

  • Les entrées/sorties de fichiers.
  • Gérer les différents formats de flux d’E/S.
  • La sérialisation.

Accès aux SGBDR avec JDBC

  • Présentation de la librairie JBDC.
  • Connexion à une base de données, exécution d'une requête et itération sur les résultats avec les interfaces Connection, Statement et ResultSet.
  • Requêtes paramétrées et requêtes stockées.
  • Introduction à l’API JPA : objectifs et petite démo.

Améliorer la qualité d'une application grâce aux tests unitaires

  • Créer des tests unitaires avec JUnit.
  • Créer des suites de tests avec JUnit.
  • Générer des rapports.
  • Introduction à la notion de couverture de code et exemples de frameworks.
  • Options avancées de la perspective Debug.

Programmation fonctionnelle et Lambda Expressions

  • Introduction à la programmation fonctionnelle.
  • Exemples de Lambda Expressions.
  • Référentiels et méthodes.

Introduction aux nouveautés Java depuis la version 9

• Présenter les nouveautés les plus marquantes depuis la version 9.

Moyens pédagogiques

Démonstrations, cas pratiques.