2ISA – POO 0-Generalites_sur_le_langage_Java.doc Généralités sur le langage Java Les caractéristiques du langage ................................................................................................................. 1 Rapide historique ...................................................................................................................................... 2 Compilation et Exécution ......................................................................................................................... 2 Environnement de Développement Intégré ............................................................................................... 3 Différences Java et Javascript ................................................................................................................... 3 Les caractéristiques du langage Java est un langage de programmation évolué, orienté objet dont la syntaxe est proche du C++. Il existe plusieurs types de programmes en Java : · Les applications : une application autonome est une application qui s'exécute sous le contrôle direct du système d'exploitation, les applications ont un bloc main(). · Les applets : Une applet est une application embarquée dans une page HTML, chargée par un navigateur et exécutée sous le contrôle de celui-ci. · Les servlets ou les JSP sont des applications java s'exécutant du coté serveur web, ces technologies permettent d'écrire des pages web dynamiques. Le source est compilé en pseudo-code ou byte-code puis exécuté par un interpréteur JAVA : la Java Virtual Machine (JVM). Ce concept est la base du slogan de Sun pour Java : Write Once, Run Java est interprété AnyWhere. En effet, le byte code peut être exécuté et donner les mêmes résultats sur toutes les machines dotées d'une JVM. Il n'y a pas de compilation spécifique pour chaque plate-forme. Java est indépendant de Le code est indépendant de la plate-forme sur laquelle il s'exécute. toute plate-forme Le code peut s'exécuter sur toute machine disposant d'une machine virtuelle. Chaque fichier source contient la définition d'une ou plusieurs classes qui sont utilisées ensemble pour former une application. Java n'est pas orienté objet "pur" car il contient des types primitifs qui ne sont Java est Orienté Objet pas des objets (entier, booléen, flottant, caractère). Java implémente les concepts objets d'encapsulation, d'héritage, de polymorphisme. Toutes les variables sont typées. Il n'existe pas de conversion automatique qui Java est fortement typé pourrait engendrer une perte de données. Les conversions sont à la charge du développeur (casting). Java n'utilise pas des notions complexes telles que les pointeurs (comme en Java est "simple" C++). Java ne permet pas l'héritage multiple. Java alloue automatiquement de la mémoire aux objets créés et récupère la Java assure la gestion mémoire inutilisée grâce au garbage collector (ramasse-miettes) qui restitue de la mémoire les zones de mémoire laissées libre suite à la destruction des objets. La sécurité fait partie intégrante du système d'exploitation et du compilateur. Java est sur Les applets ne peuvent pas ouvrir, lire, écrire ou effacer des fichiers sur la machine de l'utilisateur. Le byte code a une taille relativement petite car les bibliothèques de classes ne Java est économe sont liées qu'à l'exécution. Java est multitâche Java permet l'utilisation de threads qui sont des unités d'exécution isolées. le 01/11/2005 5:21 Page 1 sur 3 2ISA – POO 0-Generalites_sur_le_langage_Java.doc Rapide historique Java est une marque déposée de Sun MicroSystems. Sun fournit gratuitement un ensemble d'outils et d'API pour développer en Java : le JSDK (Java2 Software Developement Kit). Principales versions : · 1996 · 1998 · 2000 · 2002 · 2004 JDK 1.0 JDK 1.2 (dite Java 2) JDK 1.3 JDK 1.4 (135 packages/3000 classes) JDK 1.5 (dite Java 5) Sun propose 3 éditions: · J2SE : Java2 Standard Edition comprenant les bibliothèques de bases pour développer des applications destinées à un poste client. · J2EE : Java2 Entreprise Edition destinée aux développements des applications d'entreprises (serveurs). · J2ME : Java2 Micro Edition destinée aux systèmes mobiles. Compilation et Exécution N'importe quel éditeur de source peut être utilisé pour coder en Java Le code source doit être compilé en byte code qui sera ensuite exécuté ou interprété par la machine virtuelle. Le code est indépendant du système d'exploitation sur laquelle il s'exécute. Le code peut s'exécuter sur toute machine disposant d'une machine virtuelle. le 01/11/2005 5:21 Page 2 sur 3 2ISA – POO 0-Generalites_sur_le_langage_Java.doc Environnement de Développement Intégré Pour avoir plus de confort, il est préférable d'utiliser un Environnement de Développement Intégré (EDI/IDE) tel que Eclipse, JBuilder (Borland), NetBeans (Sun), JDeveloper (Oracle)… Eclipse est EDI open-source, extensible, polyvalent permettant potentiellement de développer des projets mettant en œuvre n'importe quel langage de programmation. Le projet Eclipse a été lancé par IBM. La première version d'Eclipse a été diffusée en 2001. Le développement d'Eclipse est désormais entièrement géré par eclipse.org (organisation à but non lucratif). D'après eclipse.org, Eclipse est une plateforme pour "toutes sortes de choses et rien en particulier". Son architecture est développée autour de la notion de plug-in. Parmi les langages supportés par Eclipse : C, C++, PHP, Javascript, HTML, XML, Pascal, SQL …. Le fait qu'on puisse se servir d'Eclipse pour développer en Java, n'est qu'une utilisation particulière. A noter, Eclipse est écrit en Java Différences Java et Javascript Il ne faut pas confondre les langages Java et JavaScript. La syntaxe des 2 langages est proche car elles dérivent toutes les 2 du C++. Ces 2 langages peuvent cohabiter dans des pages Web. Le tableau suivant permettra de s'y retrouver : Auteur Compilation Stockage Utilisation Exécution POO Typage Complexité Java JavaScript Sun MicroSystems Netscape Communications Compilé sous forme de byte-code Interprété Applet téléchargée comme élément d'une Source inséré dans la page Web page Permet de développer tous types Rend les pages Web plus "dynamiques" d'applications Exécuté par la JVM du navigateur Exécuté par le navigateur Orienté Objet Utilise des objets mais ne permet pas d'en créer Fortement typé Pas de contrôle de type Code relativement complexe Code simple le 01/11/2005 5:21 Page 3 sur 3