Java avancé
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.
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
- 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 ;
- Exceptions;
- Héritage ;
- Classes abstraites ;
- Le polymorphisme ;
- Généricité
- La classe Object ;
- Types génériques
- Collections ;
- Entrées/Sorties (fichiers) ;
- Threads;
- 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.
- Horstmann, C. S. (2019). Core Java: volume I (Eleventh edition). Boston : Pearson.
- Horstmann, C. S. (2016). Core java: volume II–advanced features (10th edition). Boston, MA : Prentice Hall.
- Schildt, H. (2018). Java. A beginner’s guide (Eighth edition). New York : McGraw-Hill Education.
- Doudoux, J.M. (2019). Développons en Java. http://www.jmdoudoux.fr/accueil_java.htm#dej
- Oracle (2021). The Java Tutorials. https://docs.oracle.com/javase/tutorial/
- Oracle (2021). Java® Platform, Standard Edition & Java Development Kit Version 15 API Specification. https://docs.oracle.com/en/java/javase/15/docs/api/index.html
Les intervenants
FAQ
Les prérequis
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