Chapitre 1-Java I
Chapitre 1-Java I
Chapitre N°1
La plateforme Java 2 Standard
Edition : J2SE
Par SAIR ABDELLAH
[email protected]
Qu’est ce que Java?
Langage portable grâce à l’exécution par une machine
virtuelle JVM « Write once, run everywhere » Indépendant
des plates-formes.
Difficile à atteindre: « Write once, debug everywhere».
Java 5 en 2004
Java 7 en 2011
Java 8 en 2015
Familier
Syntaxe proche de celle de C/C++
8
Caractéristiques du langage Java
Orienté objet :
(2)
Java ne permet d'utiliser que des objets (hors les types
de base)
Java est un langage objet de la famille des langages de
classe comme C++ ou SmallTalk
Les grandes idées reprises sont : encapsulation, dualité
classe /instance, attribut, méthode / message, visibilité,
dualité interface/implémentation, héritage simple,
redéfinition de méthodes, polymorphisme
Sûr
Seul le bytecode est transmis, et «vérifié» par
l’interpréteur
Impossibilité d’accéder à des fonctions globales ou des
ressources arbitraires du système
9
Caractéristiques du langage Java
(3)
Fiable
Gestion automatique de la mémoire
(ramasse-miette ou "garbage collector")
Gestion des exceptions
Sources d'erreurs limitées
typage fort,
10
Caractéristiques du langage Java
(4)
Java est indépendant de l'architecture
Le bytecode généré par le compilateur est
indépendant de toute architecture. Toute application
peut donc tourner sur une plate-forme implémentant
une machine virtuelle Java
« Ecrire une fois, exécuter partout »
Java est multi-tâches
Exécution de plusieurs processus effectuant chacun
une tâche différente
Mécanismes de synchronisation
Fonctionnement sur des machines multiprocesseurs
11
Java, un langage de programmation
Hotjava.
application spécifique : Appletviewer.
13
Java, un langage indépendant?
(2)
Avantages :
Portabilité
code,
pas d'édition de liens,
exécutables
pour voyager sur les réseaux.
14
Java, un langage indépendant?
(3)
Inconvénients :
Nécessite l’installation d’un interpréteur pour pouvoir
exécuter un programme Java
L'interprétation du code ralentit l'exécution
Les applications ne bénéficient que du dénominateur
commun des différentes plate-formes
limitation, par exemple, des interfaces graphiques
Fichier
de Librairies
code
Programme
Compilation Code objet Edition de liens
exécutable
16
Langage interprété
Cas de Java
Avant exécution Exécution
Fichier
Byte code Machine virtuelle
de code Compilation
Java (JVM)
Java
javac MaClasse.class java
MaClasse.java
17
L’API de Java (1)
Java fournit de nombreuses librairies de classes
remplissant des fonctionnalités très diverses : c'est
l'API Java
API (Application and Programming Interface
18
L’API de Java (2)
Les principaux paquetages
java.util : structures de données classiques
l'OS, threads
java.applet : les applets sur le web
dessins.
javax.swing : package récent proposant des
dans ce cours)
java.sql : fournit le package JDBC (pas abordé
dans ce cours)
20
L’API de Java (4)
La documentation de Java est standard, que ce soit
pour les classes de l'API ou pour les classes
utilisateur
possibilité de génération automatique avec l’outil
Javadoc.
Elle est au format HTML.
intérêt de l'hypertexte pour naviguer dans la
documentation
21
L’API de Java (5)
Pour chaque classe, il y a une page HTML contenant :
la hiérarchie d'héritage de la classe,
hérités),
la liste des méthodes de la classe (locaux et hérités),
22
L’API de Java (6)
Où trouver les informations sur les classes de l’API
sous le répertoire jdk1.x/docs/api dans le JDK
24
Outil de développement : le
JDK
Environnement de développement fourni par Sun
JDK signifie Java Development Kit (Kit de développement
Java).
Il contient :
les classes de base de l'API java (plusieurs centaines),
le compilateur : javac
etc.
25
Ce que contient le JDK
Les programmes nécessaire au développement java sont
placés dans le répertoire
C:\Program Files\Java\jdk1.8.0_131\bin à savoir:
javac.exe : Compilateur java.
java.exe : Interpréteur du bytecode java.
appletviewer.exe : Pour tester les applets java.
Jdb.exe : Débogueur java.
Javap.exe : désassembleur du bytecode.
Javadoc.exe : Générer la documentation de vos programmes
java.
Javah.exe : Permet de lier des programmes Java avec des
méthodes natives, écrites dans un autre langage et dépendant
du système.
jar.exe : Permet de compresser les classes Java ainsi que tous
les fichiers nécessaires à l'exécution d'un programme
(graphiques, sons, etc.). Il permet en particulier d'optimiser le
chargement des applets sur Internet.
jarsigner.exe : Un utilitaire permettant de signer les fichiers
archives produits par jar.exe.
Java, un langage novateur?
Java n'est pas un langage novateur : il a puisé ses
concepts dans d'autres langages existants et sa
syntaxe s’inspire de celle du C++.
Cette philosophie permet à Java
De ne pas dérouter ses utilisateurs en faisant
"presque comme ... mais pas tout à fait"
D'utiliser des idées, concepts et techniques qui ont
fait leurs preuves et que les programmeurs savent
utiliser
En fait, Java a su faire une synthèse efficace de
bonnes idées issues de sources d'inspiration variées
Smalltalk, C++, Ada, etc.
27
Syntaxe du langage Java
Les commentaires
/* commentaire sur une ou plusieurs lignes */
Identiques à ceux existant dans le langage
C
// commentaire de fin de ligne
Identiques à ceux existant en C++
30
Point d’entrée d’un programme
Java
Pour pouvoir faire un programme exécutable il faut
toujours une classe qui contienne une méthode
particulière, la méthode « main »
c’est le point d’entrée dans le programme : le
31
Exemple (1)
La classe est l’unité de
Fichier Bonjour.java base de nos programmes.
Le mot clé en Java pour
public class Bonjour définir une classe est
class
{ //Accolade débutant la classe Bonjour
public static void main(String args[])
{ //Accolade débutant la méthode main
/* Pour l’instant juste une instruction */
System.out.println(“bonjour”);
} //Accolade fermant la méthode main
} //Accolade fermant la classe Bonjour
32
Exemple (2)
Fichier Bonjour.java Accolades délimitant le
début et la fin de la définition
de la class Bonjour
public class Bonjour
{
public static void main(String args[])
{
Accolades délimitant le début
System.out.println(“bonjour”); et la fin de la méthode main
}
} Les instructions se terminent
par des ;
33
Exemple (3)
Fichier Bonjour.java Une méthode peut recevoir
des paramètres. Ici la méthode
public class Bonjour main reçoit le paramètre args
qui est un tableau de chaîne
{ de caractères.
34
Compilation et exécution (1)
Le nom du fichier est nécessairement
Fichier Bonjour.java celui de la classe avec l’extension
.java en plus. Java est sensible à la
casse des lettres.
Compilation en bytecode
java dans une console DOS:
javac Bonjour.java public class Bonjour
Génère un fichier
Bonjour.class {
Exécution du programme
(toujours depuis la console public static void main(String[] args)
DOS) sur la JVM :
java Bonjour {
Affichage de « bonjour »
dans la console System.out.println(“bonjour”);
}
}
35
Compilation et exécution (2)
Pour résumer, dans une console DOS, si j’ai un fichier
Bonjour.java pour la classe Bonjour :
javac Bonjour.java
d’erreurs
java Bonjour
Exécution du bytecode