Java avancé

Les cours ont lieu en visioconférence.

Vous trouverez également des informations sur eureka.

  • Installation environement Java ;
  • Exercices complémentaires ;
  • …
Table des matières

Un peu d’histoire

Java est une technologie composée d’un langage de programmation orienté objet et d’un environnement d’exécution. Préalablement nommé Oak, il a été créé par James Gosling et Patrick Naughton chez Sun Microsystems avec le soutien de Bill Joy.

Oak (“Chêne”) était le nom qui a été donné à Java dans un premier temps. Mais comme celui-ci était déjà utilisé on lui a donné le nom de Java en l’honneur du nom argotique (en américain de Nord) du breuvage le plus consommé par les programmeurs, c’est-à-dire le café, dont une partie de la production vient de l’île de Java

Le langage Java fut officiellement présenté le 23 mai 1995 au SunWorld.

Le concept Java est basé sur le langage Java, la machine virtuelle Java et l’API Java (ces deux derniers composants forment l’environnement d’exécution, ou JRE, pour Java Runtime Environment).

Concepts de base

La première caractéristique de Java est d’être orienté objet. Tout y est objet ou presque … A la source de l’objet, la classe. La classe est le support de l’encapsulation : c’est un ensemble de données et de fonctions regroupées dans une même entité. Une classe est une description abstraite d’un objet. Les fonctions qui opèrent sur les données sont appelées des méthodes. Instancier une classe consiste à créer un objet sur son modèle. Pour accéder à une classe il faut en déclarer une instance de classe ou objet. Une classe comporte sa déclaration, des variables et la définition de ses méthodes. Une classe se compose en deux parties : un en tête et un corps. Le corps peut être divisé en 2 sections : la déclaration des données et des constantes on parle souvent d’attributs et la définition des méthodes. Les méthodes et les données sont pourvues de qualificatifs de visibilité qui gèrent leur accessibilité par les composants hors de la classe.

La deuxième caractéristique du langage, c’est la portabilité cela signifie que les programmes écrits en Java doivent fonctionner sur plusieurs types de matériel informatique. Un programmeur doit pouvoir écrire un programme une seule fois et, le faire fonctionner dans n’importe quel ordinateur. Ceci est permis en compilant le code source d’un programme Java dans un pseudo-code intermédiaire appelé bytecode Java. Le code est par la suite exécuté par une machine virtuelle la JVM, un programme écrit en code natif sur le matériel cible qui interprète le pseudo-code Java en code utilisable pour le matériel concerné. De plus, des bibliothèques sont offertes pour fournir l’accès à des fonctionnalités propres à la machine cible – comme les graphiques ou le réseau – d’une manière unifiée. Le langage Java offre aussi le support au parallélisme et à la distribution.

Au programme

  1. Rappel rapide des différents concepts vus les semestres précédents
    • Présentation de Java ;
    • Types et structures de contrôles;
    • Classes et objets en Java ;
  2. Exceptions;
  3. Héritage ;
    • Classes abstraites ;
    • Le polymorphisme ;
  4. Généricité
    • La classe Object ;
    • Types génériques
  5. Collections ;
  6. Entrées/Sorties (fichiers) ;
  7. Threads;
  8. Graphismes, fenêtrages (cette partie pourra être non traitée);
    • Java FX.

Les différents supports

  • Les supports de cours

    Vous trouverez ici, les différents liens vous permettant de relire/lire les diapositives présentées en cours durant le semestre.

  • Les exercices

    Vous trouverez ici, les sujets des TD/TP.

  • Correcteur

    Gestion de fichiers et collections Ce TP est inspiré du livre Introduction to Programming in Java de Robert Sedgewick et Kevin Wayne. Introduction L’objectif est de réaliser un correcteur orthographique capable de détecter les fautes d’orthographe et de les corriger si possible.

  • FichiersMesures

    Mise en oeuvre du cours sur les fichiers. Bouée connectée Fichier de mesures L’estuaire de la Seine est fortement industrialisé et la surveillance de la qualité des eaux peux se faire à l’aide de bouées connectées qui renvoient des mesures qui sont récupérées de façon centralisées.

  • Threads

    Histoire de chauffage Considérons un immeuble chauffé par une unique chaudière, composé de 10 appartements tous équipés d’une commande permettant d’augmenter ou diminuer la température de l’eau de la chaudière. Je sais c’est sans doute une mauvaise idée, mais cela permet de vous proposer un problème simple mettant en avant les problèmes qui peuvent survenir avec les threads.


Exemple de partiel ou examen


Références

Ceci n’est pas exhaustif. Je vous conseille en particulier d’utiliser la documentation en ligne de Java et également les tutoriels.


Les intervenants

Damien Olivier
Paulin Heleine


FAQ

Les prérequis

  • Le cours Java du semestre 1 de L2.
  • Bien avoir compris les notions de classes et d’objet.
  • Maîtriser la notion de référence.

Compétences

  • Maîtriser la programmation JAVA
  • Savoir utiliser la documentation JAVA
  • Connaître et et savoir utiliser les structures de données présentes dans les API de base
  • Savoir stocker de utiliser de l’information sous la forme de fichier
  • Avoir des notions de base sur la programmation distribuée

Évaluations

Un examen partiel en milieu de semestre et un examen terminal en fin de semestre. Cet examen partiel peut prendre la forme d’un projet à rendre. Note finale : 1/3 partiel + 2/3 terminal