01 Bases Java
01 Bases Java
Julien Sopena1
I Filiation historique :
I 1983 (AT&T Bell) : C++
I 1991 (Sun Microsystems) : Java
I Java est très proche du langage C++ (et donc du langage C).
I Toutefois Java est plus simple que le langage C++, car les
points "critiques" du langage C++ (ceux qui sont à l’origine
des principales erreurs) ont été supprimés.
I Cela comprend :
I Les pointeurs
I La surcharge d’opérateurs
I L’héritage multiple
Notes
I gain de fiabilité (pas de désallocation erronée).
I a un coût (perte en rapidité par rapport au C++).
source.c
monProg
Execution : ./monProg
Portabilité
Le bytecode généré par le compilateur ne dépend pas de l’archi-
tecture de la machine où a été compilé le code source, c’est-à-dire
que les bytecodes produits sur une machine pourront s’exécuter
(au travers d’une machine virtuelle) sur des architectures diffé-
rentes.
Cette JVM n’existe pas. Elle est simulée par un programme qui :
1. lit les instructions (en bytecode) du programme .class
2. fait une passe de vérification (type opérande, taille de pile, flot
données, variable bien initialisé,...) pour s’assurer qu’il n’y a
aucune action dangereuse.
3. fait plusieurs passes d’optimisation du code
4. les traduit dans le langage natif du processeur de l’ordinateur
5. lance leur exécution
source.java
source.class
Note
Java perd (un peu) en efficacité par rapport à C++// mais gagne
(beaucoup) en portabilité.
P ROGRAMME
Variable Procédure
Variable Fonction
Variable
J. Sopena (INRIA/UPMC) Le bases du langage Java. Procédure 28 / 35
Conception par traitements : +/-
P ROGRAMME
Objet Objet
Variable Variable
Variable Variable
Procédure Procédure
Fonction Fonction
Définition
Un objet est une entité autonome, qui regroupe un ensemble de
propriétés (données) cohérentes et de traitements associés.
À retenir
Ne commencez pas par vous demander ce que fait l’application
mais ce qu’elle manipule.