Introduction à JAVA Sylvie Billot Maître de Conférences en Informatique Laboratoire d’Informatique Fondamentale d’Orléans Université d’Orléans sylvie.billot@lifo.univ-orleans.fr Introduction à Java
Bibliographie Java, la synthèse - G.CLAVEL, N.MIROUZE, S. MUNEROT, E.PICHON, M.SOUKAL (InterEditions 1998) Java par la pratique – P. NIEMEYER et J. PECK (O’Reilly 1996) Apprendre Java et C++ en parallèle – J.B. BOICHAT (Eyrolles 2000) Introduction à Java
Sur l’Internet http://java.sun.com/docs/books/tutorial/ www.eteks.com/coursjava/ www.infres.enst.fr/~charon/coursJava/ http://penserenjava.free.fr/ http://www.club-java.com/ http://www.commentcamarche.net/ Introduction à Java
Qu'est-ce que Java ? Un environnement de programmation pour applications réseaux Un langage de programmation objet (comme C++) Une architecture de «Virtual Machine» (les applications écrites avec JAVA sont indépendantes de la machine réelle) Un ensemble d'interfaces de programmation (Application Programming Interfaces ou API) Un ensemble d'outils (le Java Developer’s Kit) Présentation du langage Java Introduction à Java
Bref historique Historique 1991 : projet Oak (langage pour l'électronique grand public) 1994 : Java / HotJava août 95 : licence vendue à Netscape Sept. 95 : JDK 1.0 b1 Déc. 95 : Microsoft se dit intéressé Janv. 96 : JDK 1.0.1 Eté 96 : Java Study Group ISO/IEC JTC 1/SC22 Fin 96 : RMI, JDBC, JavaBeans, ... Mars 97 : JDK 1.1 Début 98 : JDK1.2 Introduction à Java
Caractéristiques - 1 En Java, tout est «classe» Caractéristiques de Java Données Procédures et Fonctions Programmation «classique» attributs méthodes messages Programmation «objet» Introduction à Java
Brève «histoire» de la programmation -1- Caractéristiques de Java Un programme = une tâche à accomplir, une tâche à résoudre Modéliser cette tâche/ ce problème ALGORITHME Traduire en instructions exécutables par la nachine PROGRAMME Etude des «bonnes méthodes» de conception/programmation = GENIE LOGICIEL Introduction à Java
Brève «histoire» de la programmation -2- Caractéristiques de Java «Préhistoire» : la machine EST le programme, les données sont externes (cartes) Machine de Von Neumann : séparation contrôle (programme) exécution (UC/UAL) données (Mémoire) Langage machine Assembleur (mnémonique) Instructions : FORTRAN, COBOL (années 50) Introduction à Java
Brève «histoire» de la programmation -3- Caractéristiques de Java Langages structurés : ALGOL, Pascal (années 60) blocs d’instructions, procédures, fonctions instructions standards (si, tantque, etc.) typage strict des données Langages modulaires : Modula, Ada (années 70) regrouper les sous-programmes en modules programmer par assemblages de modules Leçon : plus d’abstraction permet plus de sûreté de programmation (programmes plus aisés à concevoir, plus faciles à lire et à maintenir, plus portables) Mais la conception se résume toujour à «Comment faire ?» (i.e. quelle suite d’instructions utiliser?) Introduction à Java
Brève «histoire» de la programmation -4- Caractéristiques de Java Langages déclaratifs : années 60-70 aller plus loin dans l’abstraction en spécifiant seulement ce qu’on veut calculer, en laissant au système le fait de savoir comment faire. La question est alors «Que faire ?» programmation fonctionnelle (LISP) programmation en logique (Prolog) Dans tous ces modèles de programmation, les données restent extérieures, on se concentre sur les traitements Alternative (sous l’influence des méthodes de conception de Bases de Données) : mettre les données au centre des préoccupations, ce sont elles qui détermine les actions. . . Introduction à Java
Brève «histoire» de la programmation -5- Caractéristiques de Java Le modèle objet : Simula (1967), Smalltalk, C++, Java Un programme est un ensemble d’objets indépendants qui collaborent par envoi/réception de messages La question devient «Qui fait quoi ?» Abstraction : la réalité est «conceptualisée» Modularité : le programme est un ensemble d’objets, des modules cohérents et organisés Encapsulation, polymorphisme, surcharge Avantages : lisibilité, maintenance, réutilisabilité, composabilité, extensabilité, unification des méthodes de conception (UML) et des langages (Java) Introduction à Java
Comparaison de Java et C++ Caractéristiques de Java Quasiment la même syntaxe Java plus simple car suppression des notions de Pointeurs Surcharges d’opérateurs Héritage multiple Libération explicite de mémoire (pas besoin de destructeurs en Java) Particularité des chaînes et tableaux (ce sont des objets en Java) Java moins rapide car portabilité Introduction à Java
Caractéristiques - 2 Java est orienté objet Caractéristiques de Java Java est orienté objet simple à prendre en main, il permet de développer rapidement des applications Langage à la fois compilé et interprété : Java produit du byte-code indépendant de la plate forme et interprétable par une machine virtuelle : la Java Virtual Machine (JVM) Introduction à Java
La machine virtuelle + = code source Compilateur code machine système d’exploitation Matériel byte-code Interpréteur Traducteur JVM Caractéristiques de Java code source Compilateur code machine système d’exploitation Matériel système d’exploitation code source Interpréteur Matériel + = Introduction à Java
Caractéristiques - 3 à la fois compilé et interprété : Caractéristiques de Java à la fois compilé et interprété : un programme Java est ainsi exécutable dans n’importe quel environnement disposant d’une JVM Pas de phase d’édition de liens (garantit la PORTABILITE) Java est multi-thread (plusieurs tâches ensembles) Java est distribué (applications clients-serveur) Introduction à Java
Les paquetages centraux de Java String Thread … lang File … io Applet AudioClip … applet URL Socket … net Graphics Component … awt Introduction à Java
Caractéristiques - 4 Java est Caractéristiques de Java Java est robuste (vérification du comportement du code, traitement des exceptions) portable (indépendant de toute architecture) sécurisé (vérification de la légalité du code, fonctionnement du «Class Loader») dynamique (classes chargées selon les besoins) Introduction à Java
Programmer en Java Les applications Les applets S’exécutent dans le système d’exploitation à condition d’avoir installé une machine virtuelle Les applets Petites applications destinées à fonctionner sur un navigateur. Une applet a un champ d’action plus réduit qu’une application. Introduction à Java
Serveurs Web INTERNET Programme Client Programme Serveur Internet requête Internet Document(s) Document(s) ezezrzrerttrrteztr ezrrz Documents Navigateur Introduction à Java
Documents Web Internet INTERNET Plan du cours 1. Introduction 1. Présentation de Java Java est un environnement de programmation pour applications réseaux, orienté objet . . . . Plan du cours 1. Introduction 2. La programmation Objet 3. Des applications Des références : Cours Java de Patrick Itey site de comment ca marche Internet URL : http://www.univ-orleans.fr/billot/plan.html Introduction à Java
page HTML INTERNET <HTML> <HEAD> <TITLE> plan fichier plan.html : <HTML> <HEAD> <TITLE> plan </TITLE> </HEAD> <BODY> <center><b><i>Plan du cours :</i></b></center> <a href="ch1.html#Intro">1. Introduction</a> . . . </BODY> </HTML> Introduction à Java
Liste des films à l’affiche pages dynamiques INTERNET Liste des films à l’affiche à L’Arc C’est la vie 13h30 - 15h30 - 17h30 19h50 - 22h Le journal de Bridget Jones 12h10 - 16h20 - 20h Le petit poucet 12h - 14h Liste des salles Le grand Ecran rue des roses L’Arc place d’Arc Le Martroi place du martroi Introduction à Java
page HTML avec applet INTERNET <HTML> <HEAD> <TITLE> liste des films dans une salle </TITLE> </HEAD> <BODY> <u>Liste des films à l’affiche</u> <applet code = "films.class" width =100 height =50> <param name = "salle" value =$Salle> Votre browser ne supporte pas les applets! </applet> </BODY> </HTML> Introduction à Java
Sécurité en Java Visualiser les scénarios d’attaque INTERNET Visualiser les scénarios d’attaque Concevoir un jeu de base des comportements malveillants Concevoir une architecture de sécurité contre les comportements malveillants Technique globale de protection : n’accepter que les applets signées et cryptées. Introduction à Java
Java Development Kit La Plate-forme de développement Java http://java.sun.com/products ou http://www.javasoft.com La Plate-forme de développement Java JDK 1.0.x : compatibles avec Java 1.0 spécifications originales, API et classes élémentaires JDK 1.1.x : compatibles avec Java 1.1 améliorations + JavaBeans, JDBC, RMI événements, sécurité, servlets, JNI JDK 1.2.x : compatibles avec Java 2 Swing, améliorations des JavaBeans, API Java2D, API d’accessibilité Introduction à Java
Le JDK contient javac : compilateur des sources Java (produit du byte-code) java : interpréteur de byte-code appletviewer : interpréteur d’applets javadoc : générateur de documentation HTML jdb : débogueur javap : un décompilateur (revenir du byte-code au source) jar : compresseur de classes Java La Plate-forme de développement Java Introduction à Java
Les Application Programming Interfaces (API) Ensembles de classes mises à la disposition du programmeur; L’API Java Core contient : java.lang : types de base, Threads, Exceptions java.io : accès aux I/O java.util java.net java.awt java.applet java.math java.text La Plate-forme de développement Java Introduction à Java
Développer avec Java dont une seule est publique. Programmer en Java Une application Java est organisées en modules (package). Un module contient une ou plusieurs définitions de classes dont une seule est publique. Le nom du fichier = celui de la classe publique + «.java» cycle de développement stocker le code source dans un fichier «.java» javac compile ce fichier et le transforme en fichiers de byte-code de suffixe «.class» java (l’interpréteur) charge ce byte-code et le vérifie après vérification, exécution de byte-code Introduction à Java
Une application Java Programmer en Java Le texte public class Bonjour{ public static void main() { System.out.println("Bonjour!!!"); } est sauvegardé dans le fichier «Bonjour.java» Pour compiler :. javac Bonjour.java Cette commande crée le fichier «Bonjour.class» java Bonjour Pour l’exécuter :. Introduction à Java
Une applet Java Programmer en Java Le texte public class BonjourAp extends java.applet.Applet{ public void paint(java.awt.Graphics g) { g.drawString("Bonjour!!!", 125,95); } est sauvegardé dans le fichier «BonjourAp.java» Pour compiler :. javac BonjourAp.java Cette commande crée le fichier «BonjourAp.class» Introduction à Java
Une applet Java (suite) Pour l’exécuter, écrire la page HTML:. Programmer en Java <HTML> <HEAD> <TITLE>l’applet Bonjour </TITLE> </HEAD> <BODY> Voilà le résultat : <applet code = "BonjourAp.class" width =300 height =200> </applet> </BODY> </HTML> puis l’ouvrir avec appletviewer ou son navigateur préféré. . . Introduction à Java
Le phénomène «JAVA» Langage non «propriétaire» Conclusion Langage non «propriétaire» intègre les progrès des deux dernières décennies : objets, exceptions, threads propose toutes les API nécessaires pour programmer les Systèmes d’Information des entreprises environnement d’exécution (portabilité + performance) distribution sur plates-formes variées, en évolution rapide Introduction à Java