Avertissements préliminaires
Cette page est consacrée à des cours concernant des sujets généraux relatifs à Java.
Les amateurs de café et/ou les indonésophiles risqueraient d'être déçus et pourront se reporter plutôt sur les sites suivants :
- L'office du tourisme d'Indonésie avec des pages en français
- Un article PDF sur le café Java
- Ceux qui s'attendent à discuter de langage de programmation, de machine virtuelle Java et d'API peuvent continuer paisiblement la lecture de la présente page.
Quelques remarques préliminaires :
- Les cours sur cette page n'ont pas vocation à être exhaustifs ; ils sont pour la plupart une introduction à un thème donné
- Les cours et exemples de cette section ne sont pas exempts d'erreurs, en cas de découverte d'une d'entre-elles, n'hésitez pas à m'envoyer un courriel
- Certaines feuilles d'exercices peuvent dépendre du traitement de feuilles précédentes (en règle général cela est indiqué)
Introduction à Java
-
Une introduction à Java (à destination de débutants maîtrisant déjà d'autres langages)
- Découverte de la syntaxe du langage (peu déroutante pour les pratiquants du C(++))
- Premiers programmes en Java (dont le traditionnel et incontournable HelloWorld)
- Utilisation de la classe Scanner, Random...
- Les classes et la programmation orientée-objet en Java
- Récapitulatif de concepts importants en Java
- Passage en revue du mécanisme des exceptions
- Les énumérations
- Introduction aux tests unitaires
- Utilisation des annotations en Java
- Quelques patrons de conception
- Quelques bibliothèques Java utiles
Références utiles vers d'autres cours
- Cours de Java de Marie-Pierre Béal en DUT 1ère année
- Cours de Java d'Etienne Duris en IR
- Cours de Rémi Forax en licence, master Informatique
Quelques exercices
Les collections
-
Les collections
- Remarque : les collections destinées à un usage concurrent ne sont pas abordées ici
- Les listes (List) : ArrayList et LinkedList
- La notion d'égalité (equals(), hashCode())
- La notion d'ordre total (Comparable, Comparator) et le tri de listes
- Les ensembles (Set) : HashSet et TreeSet
- Les dictionnaires (Map) : HashMap et TreeMap
- Des trucs & astuces concernant l'usage des collections
- L'utilisation de l'API streams introduite par Java 8
Entrées/sorties et persistance de données en Java
Nous examinons ici l'utilisation de flots, la sérialisation pour communiquer avec l'extérieur ainsi que l'utilisation d'APIs pour le stockage en bases de données.
- A propos de la persistance de données en Java
-
Sur les flots Javanais
- Remarque : seul l'usage des flots avec le paquetage java.io est abordé ici (pas d'utilisation de java.nio pour le moment)
- Les flots binaires
- Les flots de caractères
-
Sérialisation
- Sérialisation binaire Java
- Manipulation de données XML
- Manipulation du format JSON
- Gestion de fichiers de configuration
- Utilisation de JDBC
- Java Persistence API (avec notamment l'utilisation d'Hibernate)
Programmation réseau et concurrence en Java
Ce cours est destiné à explorer l'utilisation de l'API java.net permettant de manipuler des sockets UDP et TCP. Nous nous intéressons aussi au protocole HTTP notamment pour l'implantation de clients ainsi que de serveurs.
-
Sockets UDP et TCP en Java
- Résolution DNS en Java (InetAddress)
- Les sockets UDP (DatagramSocket et MulticastSocket)
- Les sockets TCP (ServerSocket et Socket)
-
Introduction à la programmation concurrente
- Découverte des problématiques liées à la programmation concurrente (interblocage, famine, exclusion mutuelle...)
- Introduction à la gestion de la concurrence en Java (threads, moniteurs, verrous, attente/signalisation)
- Application à la réalisation de serveurs TCP concurrents
-
Java et le protocole HTTP
- Introduction au protocole HTTP
- Réalisation de client HTTP en Java
- Réalisation de serveur HTTP en Java
- Conclusion sur les servlets
Quelques frameworks Java pour la programmation web
- Java Enterprise Edition
- Le framework web Play
- La bibliothèque Vert.x