Académique Documents
Professionnel Documents
Culture Documents
James Gosling
Patrick Naughton
Mike Sheridan
Figure : 1990 Barbecue chez James Gosling
J. Sopena (INRIA/UPMC) Le bases du langage Java. 5 / 151
Java pourquoi ?
Java est devenu aujourdhui lun des langages de programmation
les plus utiliss.
Il est incontournable dans plusieurs domaines :
http://java.sun.com.
gratuit.
le compilateur.
le dbogueur.
le gnrateur de documentation.
Des environnements de dveloppements gratuits
NetBeans : http://www.netbeans.org/
Eclipse : http://www.eclipse.org/
J. Sopena (INRIA/UPMC) Le bases du langage Java. 8 / 151
Java volue tout le temps
Java nest pas un langage normalis et il continu dvoluer. Cette
volution se fait en ajoutant de nouvelle API, mais aussi en
modiant la machine virtuelle.
Lensemble de ces modications est gr par le JCP (Java
Community Process ; http ://www.jcp.org/) dans lequel Sun
continue de tenir une place prpondrante.
Il peut alors tre ncessaire didentier une version prcise du
compilateur et/ou de la machine virtuelle : a nest pas simple.
La numrotation des versions :
1.0 1.1 1.2 1.3 1.4 5.0
Toutes ces versions : Java 2
6.0
J. Sopena (INRIA/UPMC) Le bases du langage Java. 9 / 151
Tout se complique
Attention, avec larrive de la GPL tout se complique :
J. Sopena (INRIA/UPMC) Le bases du langage Java. 10 / 151
Les versions de Java
JDK 1.0 (1996 - 211 classes et interfaces)
Version initiale.
JDK 1.1 (1997 - 477 classes et interfaces)
Ajoute : classes internes, JavaBeans, JDBC, Java
Remote Invocation (RMI).
J2SE 1.2 (1998 - 1 524 classes et interfaces) Playground
Ajoute : rection, SWING, compilateur JIT (Just in
Time), Java IDL pour Corba.
J2SE 1.3 (2000 - 1 840 classes et interfaces) Kestrel
Ajoute : HotSpot JVM, service de nomage (JNDI) et
JavaSound.
J. Sopena (INRIA/UPMC) Le bases du langage Java. 11 / 151
Les versions de Java (suite)
J2SE 1.4 (2002 - 2 723 classes et interfaces) Merlin
Ajoute : mot-cl assert, expressions rationnelles, chanage
dexception, parser XML et du moteur XSLT (JAXP),
extensions de scurit JCE (Java Cryptography Extension)
et Java Web Start.
J2SE 5.0 (2004 - 3 270 classes et interfaces) Tiger
Ajoute : syntaxe la foreach, enumerations (enum),
classe Integer, autoboxing/unboxing
Java SE 6 (2006 - 3 777 classes et interfaces) Mustang
Ajoute : covariance (rednition avec modication du
type de retour), @overhiding.
Java SE 7 Nom de code Dolphin
Ajoutera : des closures (en cours de spcications).
Ce sera la premire Version 100% open source.
J. Sopena (INRIA/UPMC) Le bases du langage Java. 12 / 151
Outline
Java en quelques mots
Comparatif Java et C++
Programmation oriente objets.
Les classes Java
Les attributs.
Les mthodes.
Les constructeurs.
Excutable Java.
Des classes utiles.
J. Sopena (INRIA/UPMC) Le bases du langage Java. 13 / 151
Java versus C++
Filiation historique :
Java est trs proche du langage C++ (et donc du langage C).
Toutefois Java est plus simple que le langage C++, car les
points "critiques" du langage C++ (ceux qui sont lorigine
des principales erreurs) ont t supprims.
Cela comprend :
Les pointeurs
La surcharge doprateurs
Lhritage multiple
J. Sopena (INRIA/UPMC) Le bases du langage Java. 14 / 151
Java versus C++ : concepts (2)
De plus,
Tout est dynamique : les instances dune classe sont
instancies dynamiquement.
La libration de mmoire est transparente pour lutilisateur. Il
nest pas ncessaire de spcier de mcanisme de destruction.
La libration de lespace mmoire est prise en charge un
gestionnaire appel garbage collector charg de dtecter les
objets dtruire.
Notes
Orient objet : Tout est objet, sauf les types primitifs (entiers,
ottants, boolens, ...)
son nom
etc ...
J. Sopena (INRIA/UPMC) Le bases du langage Java. 138 / 151
Outline
Java en quelques mots
Comparatif Java et C++
Programmation oriente objets.
Les classes Java
Les attributs.
Les mthodes.
Les constructeurs.
Excutable Java.
Des classes utiles.
La classe String
Les tableaux.
Les enveloppes.
J. Sopena (INRIA/UPMC) Le bases du langage Java. 139 / 151
Les tableaux.
Java en quelques mots
Comparatif Java et C++
Programmation oriente objets.
Les classes Java
Les attributs.
Les mthodes.
Les constructeurs.
Excutable Java.
Des classes utiles.
La classe String
Les tableaux.
Les enveloppes.
J. Sopena (INRIA/UPMC) Le bases du langage Java. 140 / 151
Les tableaux
Important
Un tableau est un objet !
Deux tapes :
1. Dclaration : dterminer le type de ses lments.
2. Dimensionnement : dterminer la taille du tableau (cest--dire
le nombre dlments).
J. Sopena (INRIA/UPMC) Le bases du langage Java. 141 / 151
Les tableaux unidimensionnels
La dclaration dun tableau prcise simplement le type des lments
du tableau :
i nt [ ] t a bl e a u ;
La dimension du tableau est prcis lors de son instanciation
// c r e un t a bl e a u pouvant c o n t e n i r 50 e n t i e r s
t a bl e a u = new i nt [ 5 0 ] ;