Introduction à Java Hugues Bersini Code/IRIDIA – Université Libre de Bruxelles

Introduction à Java Hugues Bersini Code/IRIDIA – Université Libre de Bruxelles Objectifs du cours (1/2) • Décrire les éléments-clé de la plate-forme Java • Compiler et exécuter une application Java • Prendre en mains l’environnement de développement Eclipse • Comprendre et utiliser la documentation en ligne de Java • Décrire la syntaxe du langage • Comprendre le paradigme OO et utiliser Java pour le mettre en œuvre • Comprendre et utiliser les exceptions Objectifs du cours (2/2) • Etre capable, au terme de la formation, de développer de petites applications OO comprenant une dizaine de classes et mettant en œuvre les principaux concepts OO et structures Java. • Le cours couvre l’essentiel de la matière des examens « OO for Java – Basic », « Java SE – Basic » et « Java SE Core – Intermed » de Java BlackBelt (www.javablackbelt.com) Plan du cours (1/4) 1. Introduction générale et historique Le langage de programmation Java La plateforme Java Les versions de Java 2. Première application en Java Ecriture du code, compilation et exécution Application v/s Applet Utilitaires Java 3. Syntaxe et sémantique de Java Identificateurs Types primitifs et types de référence Tableaux et chaînes de caractères Arithmétique et opérateurs Instructions de contrôle Plan du cours (2/4) 4. Programmation orientée objets en Java Programmation procédurale v/s Programmation OO Concepts de l’OO La création d’objets: Constructeurs et mot-clé « new » Les variables: Déclaration et portée Les méthodes: Déclaration, interface et surcharge L’encapsulation: « public », « private » et « protected » Les membres d’instance et de classe: « static » Utilisation de l’héritage: « this » et « super » Conversion de types Polymorphisme Classes abstraites Interfaces Plan du cours (3/4) 5. Structure des API de Java 6. Les collections Aperçu du Java Collections Framework La classe ArrayList 7. La gestion des Exceptions Principes et hiérarchie des classes d’exceptions Interception par bloc try – catch – finally Lancement par mots-clés throws et throw Quelques sujets non couverts • Développement des applets • Interfaces graphiques (Swing et AWT) • Développement d’application clients/serveur TCP/IP UDP • Enterprise Java Beans (EJB) • Servlets et Java Server Pages (JSP) • Connections à des bases de données (JDBC) Références Web • The Java Tutorial from Sun http://java.sun.com/docs/books/tutorial/ • Thinking in Java http://www.thinkinginjava.org/ http://penserenjava.free.fr/ • The Java Developer Connection http://developer.java.sun.com/developer/index.html • Gamelan http://www.gamelan.com • Java Applet Rating Services http://www.jars.com Introduction à Java I. Introduction et historique Survol du chapitre • Qu’est-ce que Java ? • Java comme langage de programmation • La plateforme Java La Java Virtual Machine Les interfaces de programmation d’application (API) • Déploiement d’un programme • Les versions de Java • Quelques notions historiques Qu’est-ce que Java ? • Java est un langage de programmation Voir le « white paper » de J.Gosling Un programme Java est compilé et interprété • Java est une plateforme La plateforme Java, uniquement software, est exécutée sur la plateforme du système d’exploitation La « Java Platform » est constituée de : La « Java Virtual Machine » (JVM) Des interfaces de programmation d’application (Java API) Java comme langage de programmation Java est un langage de programmation particulier qui possède des caractéristiques avantageuses: Simplicité et productivité: Intégration complète de l’OO Gestion mémoire (« Garbage collector ») Robustesse, fiabilité et sécurité Indépendance par rapport aux plateformes Ouverture: Support intégré d’Internet Connexion intégrée aux bases de données (JDBC) Support des caractères internationaux Distribution et aspects dynamiques Performance Java comme langage de programmation Simple et orienté objet • Java est un langage de programmation simple Langage de programmation au même titre que C/C+ +/Perl/Smalltalk/Fortran mais plus simple Les aspects fondamentaux du langage sont rapidement assimilés • Java est orienté objet : La technologie OO après un moment de gestation est maintenant complètement intégrée En java, tout est un objet (à la différence du C++ par ex.) • Simple aussi parce qu’il comporte un grand nombre d’objets prédéfinis pour l’utilisateur • Java est familier pour les programmeurs C++ Java comme langage de programmation Robuste et sécurisé • Conçu pour créer des logiciels hautement fiables • Oblige le programmeur à garder à l’esprit les erreurs hardware et software • Vérifications complètes à l’exécution et à la compilation • Existence d’un « garbage collector » qui permet d’éviter les erreurs de gestion de la mémoire Java comme langage de programmation Neutre architecturalement • Il existe une grande diversité de systèmes d’exploitation • Le compilateur Java génère un bytecode, c’est à dire un format intermédiaire, neutre architecturalement, conçu pour faire transiter efficacement le code vers des hardware différents et/ou plateformes différentes • Le bytecode ne peut-être interprété que par le processeur de la JVM MyProgram.java MyProgram.class Mac JVM Java Compiler = bytecode Windows JVM Unix JVM Java comme langage de programmation Ouvert et distribué • Support intégré d’Internet La Class URL Communication réseaux TCP et UDP RMI, CORBA, Servlets JINI, le « must » pour construire des applications complexes distribuées….. • Connectivité aux bases de données JDBC: Java DataBase Connectivity Offre des facilités de connexions à la plupart des BD du marché Offre un pont vers ODBC • Support des caractères internationaux Java utilise le jeu de caractères UNICODE JVM équipée de tables de conversion pour la plupart des caractères JVM adapte automatiquement les paramètres régionaux en fonction de ceux de la machine sur laquelle elle tourne Java comme langage de programmation Performant • Considération basique • Exécution ralentie à cause de l’interpréteur ? • Le code natif généré par l’interpréteur est-il aussi rapide que celui réalisé par un compilateur classique (par ex C)? • Plusieurs processus peuvent être exécutés en même temps Comparable au multitâche d’un OS Le temps du CPU est divisé (sliced) Toutes les bibliothèques Java • Edition de lien effectuée à l’exécution du programme • Codes exécutables chargés depuis un serveur distant permet la mise à jour transparente des applications Java comme Plateforme • Plateforme = environnement hardware ou software sur lequel le programme est exécuté. • La Java « Platform » se compose de: la Java Virtual Machine (Java VM) la Java Application Programming Interface (Java API) Java comme Plateforme Java Application Programming Interface (API) • L’API Java est structuré en libraires (packages). Les packages comprennent des ensembles fonctionnels de composants (classes).. • Le noyau (core) de l’API Java (incluse dans toute implémentation complète de la plateforme Java) comprend notamment : Essentials (data types, objects, string, array, vector, I/O,date,…) Applet Abstract Windowing Toolkit (AWT) Basic Networking (URL, Socket –TCP or UDP-,IP) Evolved Networking (Remote Method Invocation) Internationalization Security ….. Java comme Plateforme Java Virtual Machine (1/2) • « An imaginery machine that is implemented by emulating it in software on a real machine. Code for the JVM is stored in .class files, each of which contains code for at most one public class » • Définit les spécifications hardware de la plateforme • Lit le bytecode compilé (indépendant de la plateforme) • Implémentée en software ou hardware • Implémentée dans des environnements de développement ou dans les navigateurs Web Java comme Plateforme Java Virtual Machine (2/2) La JVM définit : Les instructions de la CPU Les différents registres Le format des fichiers .class Le « stack » Le tas (« Heap ») des objets « garbage-collectés » L’espace mémoire Java comme Plateforme Java Runtime Environment Trois tâches principales : Charger le code (class loader) Vérifier le code (bytecode verifier) Exécuter le code (runtime interpreter) D’autres THREAD s’exécutent : Garbage collector (JIT compiler) Déploiement d’un programme (1/2) Paradigme classique de la compilation MyProgram.c Compiler MyProgram.o 010110… Génère du code natif directement exécutable, mais spécifique à chaque environnement Exécuté une seule fois Mais différent pour chaque environnement Déploiement d’un programme (2/2) Changement de la vision traditionnelle de la compilation • Chaque programme est compilé et interprété • « Write once run everywhere » MyProgram.java Compiler MyProgram.class Interpreter 010110… Traduit le programme en un code intermédiaire Appelé bytecode – indépendant de la machine Lit le bytecode et exécute sur la machine Exécuté une seule fois Chaque fois que le programme est exécuté Les versions de Java • SE v/s EE, annexes • SDK v/s JRE • 1.1 v/s 1.2 et suivantes • Télécharger l’environnement Java et Eclipse Bref Historique • 1991: Développement de OAK langage simple, portable et orienté objets pour la programmation d’appareils électroniques ménagers emprunte la portabilité du Pascal (VM) et la syntaxe de C++ • 1994: Abandon du projet OAK Peu d’enthousiasme pour l’idée • 1995: Intégration de la JVM dans Netscape Apparition des Applets Explosion d’Internet  attrait grandissant pour Java • 1999: Apparition de JINI Nouvelle technologie basée sur Java Reprend l’ambition de départ d’un plug and play universel Distribué sur tous les appareils munis d’un processeur • 2006: Java devient Open Source Les sources de la plateformes Java sont désormais libres sous licence GNU Introduction à Java II. Première application en Java Deux façons d’écrire des programmes Java: • En écrivant le code dans un simple éditeur de texte Compilation et exécution du code en ligne de commande (DOS) • En utilisant un environnement de développement uploads/s3/ cours-java-2013.pdf

  • 31
  • 0
  • 0
Afficher les détails des licences
Licence et utilisation
Gratuit pour un usage personnel Attribution requise
Partager