Vous êtes sur la page 1sur 31

Programmation

Java évolué

Java évolué

MAHDI Walid
1
Chapitre
Java évolué

1
Rappel Java

2
1- Rappel Java
1-1 Importance de Java(1/4)

Le langage Java fut developpé par James Gosling chez


Sun Microsystems en 1991.
Java évolué

1993 :
apparition de la Toile
Java commença à devenir de plus en plus populaire
surtout en ce qui concerne la programmation réseau.

L'importance de Java dans un réseau vient du fait qu’il


est :
un langage interprété
un langage non compilé.

MAHDI Walid
3
1- Rappel Java
1-1 Importance de Java(2/4)

Le langage Java fut developpé par James Gosling chez


Sun Microsystems en 1991.
Java évolué

1993 :
apparition de la Toile
Java commença à devenir de plus en plus populaire
surtout en ce qui concerne la programmation réseau.

L'importance de Java dans un réseau vient du fait qu’il


est :
un langage interprété.
un langage non compilé.

MAHDI Walid
4
1- Rappel Java
1-1 Importance de Java (3/4)

Un des ordinateurs contient


un programme qui devra
PC Win95 être exécuté sur les trois
Java évolué

autres.

On devra alors non pas

PC MacOS
Poste Linux

télécharger le fichier
Réseau exécutable mais le
fichier source,

Puis, le recompiler sur


chaque machine à part,
PC WinNT avant exécution.

MAHDI Walid
5
1- Rappel Java
1-1 Importance de Java(4/4)

Java repose sur une machine virtuelle qu'on appelle Java


Virtual Machine (JVM).
Java évolué

Le fichier source Java (xxx .java) est compilé en un fichier


binaire (xxx.class) exécutable uniquement sur cette
machine virtuelle.

Bytecode
JVM
Prog.class INTERPRETEUR Résultats
Résultats
DE BYTECODE

La machine virtuelle se charge alors de transformer les


instructions JVM en des instructions natives de la plate-
MAHDI Walid forme.
6
1- Rappel Java
1-2 Caractéristiques de Java(1/3)

Java est un langage orienté objet :


un programme Java n'est pas un ensemble de
procédures qui s'appellent les unes les autres.
Java évolué

il est un ensemble de structures de données qu'on


appelle objets,
chaque objet regroupant à la fois des données et des
méthodes (une fonction ou une procédure s'appelle
méthode en Java) manipulant les données.

Java est un langage interprété :


les instructions JVM sont traduites lors de leur
exécution en instructions natives de la machine.

MAHDI Walid
7
1- Rappel Java
1-1 Caractéristiques de Java(2/3)

Java est un langage portable :


Java évolué

il est interprété
Java est donc un langage portable.

Le même code compilé tournera sans complications


sur différentes plate-formes pourvu bien sûr qu'une
machine virutelle soit fournie pour chaque plate-
forme.

On appele celà Write Once - Run Always (WORA).

MAHDI Walid
8
1- Rappel Java
1-1 Caractéristiques de Java(3/3)

Java est un langage sécurisé :


Java assure une certaine sécurité au système
Java évolué

des tests qui vérifient en permanence la conformité du


pseudo-code à certaines règles.

Java est un langage robuste :


l'idée d'utiliser Java comme langage de
programmation dans des systèmes électroniques
(appareils téléphoniques, systèmes de contrôle ...)
nécessite que Java soit un langage robuste.

Par exemple en éliminant le référencement direct de la


mémoire on évite des erreurs graves pouvant mener à l'arrêt
du système.
MAHDI Walid
9
1- Rappel Java
1-3 Outils Java(1/2)

Pour écrire et éxécuter des programmes Java vous devez


avoir
un compilateur
Java évolué

et un interpréteur Java.

Le kit complet peut être téléchargé à partir du site


www.javasoft.com.

MAHDI Walid
10
1- Rappel Java
1-3 Outils Java(2/2)

Les créateurs de Java fournissent gratuitement le JDK ou


J2SDK (Java 2 Software Development Kit):
Le JDK consiste en une collection de programmes et
Java évolué

de fichiers permettant
de compiler,
d'exécuter,
et de déboguer des programmes Java.

Des environnement intégrés de développement Java sont


actuellement :
commercialisés (Visual j++, Symnatec café, etc.)
distribués gratuitement à travers le Web (Eclipse).
MAHDI Walid
11
1- Rappel Java
1-4 Outils fournis par le JDK (1/3)

Le compilateur javac:
Compile les fichiers sources java de nom XXX.java.
Java évolué

Traduit les fichiers sources en ByteCode :


Produit autant de fichier .class qu’il y a de classe définie dans
le fichier .java.

L’interpréteur java:
Prend en paramètre le nom de la classe.
Cherche le ou les fichiers .class qui lui correspondent.
Appelle la méthode main de la classe.

Le documenteur javadoc:
Génère automatiquement une documentation sous la
forme de fichiers html à partir des fichiers sources
MAHDI Walid commentés.
12
1- Rappel Java
1-4 Outils fournis par le JDK (2/3)

L’interpréteur d’applet appletviewer:


Un programme permettant de tester les applets Java,
prévues pour être intégrées dans des pages HTML.
Java évolué

Le générateur d’interface avec C, javah :


Un programme permettant de lier des programmes
Java avec des méthodes natives, écrites dans un autre
langage et dépendants des systèmes.

Le désassembleur de classe javap :


Un programme permettant de désassembler les
fichiers compilés en prenant en paramètre les fichiers
.class et de produire un texte en clair de la classe afin
d’examiner le ByteCode.
MAHDI Walid
13
1- Rappel Java
1-4 Outils fournis par le JDK (3/3)

Le débogueur Java JDB:


Un programme permettant de faciliter la mise au point des
programmes grâce à de nombreuses options permettant de
Java évolué

surveiller leur exécution.

Il est beaucoup plus facile à utiliser lorsqu’il est intégré a un


IDE « Integrated Developpement Environnement »

Les librairies de classe standard :


Classes pour réaliser les entrées sorties.
Classes pour réaliser des applications réseau.

Le jfc :
Exemples des nouveaux composant swing de l’interface
utilisateur.
Si vous voulez en avoir un catalogue complet, exécuter le programme
SwingSet2.
MAHDI Walid
14
1- Rappel Java
1-5 J2RE (Java 2 Runtime Environment)

Contient tout ce qui est nécessaire pour diffuser vos


applications.
En cas d’une application devant être diffuser au public
Java évolué

sur un CD-ROM, vous ne pouvez pas supposer que


chaque utilisateur sera équipé d’une JVM.
Il est nécessaire d’accompagner chaque application d’une
machine virtuelle .

C’est à cette fin que Sun MicroSystems met à la disposition de


tous, gratuitement le J2RE. Celui-ci contient tous les éléments
nécessaires pour faire fonctionner une application Java, par
opposition au J2SDK, qui contient tout ce qui est nécessaire
pour développer une application.
Le J2RE peut être diffusé librement sans payer aucun droit à
Sun Microsystems.
MAHDI Walid
15
1- Rappel Java
1-6 Premier programme Java(1/6)

1://votre premier programme Java


2:public class Hello{
3:public static void main(String args[ ]){
Java évolué

4: System.out.println("Hello World !");


5:}
6: }

Faites bien attention aux majuscules et minuscules dans la syntaxe de


Java et dans les noms des fichiers car cela est crucial pour le bon
fonctionnement des programmes.

La numérotation ne fait pas partie du programme et devra être


omise lors de la saisie du code.

MAHDI Walid
16
1- Rappel Java
1-6 Premier programme Java(2/6)

Depuis le DOS prompt et depuis la directoire où vous avez


fait la sauvegarde tapez :
javac Hello.java
Java évolué

Si tout se passe bien vous devez obtenir le prompt sans


aucun message d'erreur, tapez alors :
java Hello
L'interpréteur Java devra se lancer et exécuter le
programme Hello.class.

MAHDI Walid
17
1- Rappel Java
1-6 Premier programme Java(3/6)

1://votre premier programme Java

La première ligne de notre programme n'est qu'un


Java évolué

commentaire

Tout commentaire commence par le double caractère


// et peut occuper un ligne entière.

Les commentaires servent à clarifier le code de vos


programmes donc pensez à y mettre là où votre code
semble difficile à comprendre.

Pour les commentaires englobant plusieurs lignes il


suffit de mettre au début de la première ligne le
double caractère /* et à la fin de la dernière ligne le
double caractère */.
MAHDI Walid
18
1- Rappel Java
1-6 Premier programme Java(4/6)

2:public class Hello{


Java évolué

La deuxième ligne est la déclaration de la classe,

Tout programme Java est, comme nous l'avons dit,


une collection de classe,

Ici notre programme est formé d'une seule classe qui


est la classe Hello,

Le corps de la classe est englobé par deux accolades


{…..}

MAHDI Walid
19
1- Rappel Java
1-6 Premier programme Java(5/6)

3:public static void main(String args[ ]){


La troisième ligne est la déclaration de la méthode
main.
Java évolué

Tout programme devra contenir cette méthode à partir


de laquelle l'exécution commencera.
Le corps de la méthode est englobé par deux
accolades.

Un programme ne pourra contenir qu'une seule méthode main.


D'autre part le fichier dans lequel cette méthode réside devra
obligatoirement porter le nom de la classe contenant cette méthode si
cette classe est déclarée publique. C'est pourquoi nous avons nommé
notre programme ci-dessus Hello.java.
MAHDI Walid
20
1- Rappel Java
1-6 Premier programme Java (6/6)

4: System.out.println("Hello World !");


Java évolué

Notre unique instruction dans ce programme est


l'appel à la méthode println de la classe System.out.

cette classe est prédéfinie par le système et permet


d'afficher la phrase Hello World !.

MAHDI Walid
21
1- Rappel Java
1-7 Types élémentaires ou primitifs(1/5)

Comme tout langage de programmation, Java possède ses


propres types élémentaires servant à représenter les
données.
Java évolué

Dans Java la taille des types élémentaires est la même sur


toutes les plate-formes.
Le programmeur n'aura pas à se soucier des
problèmes qui découlent en général lors d'un
changement de plate-forme.

MAHDI Walid
22
1- Rappel Java
1-7 Types élémentaires ou primitifs (2/5)

Les types numériques entiers


byte short int long
Java évolué

Taille en bits 8 16 32 64
Etendue -128 -32768
.. .. -231 .. 231-1 -263 .. 263-1
127 32767

Le bit y est utilisé pour décrire les tailles.


Un bit ne peut prendre que deux valeurs (0 ou 1).
n bits ne peuvent définir que 2n valeurs.
Un octet ou byte en anglais = 8 bits.
Un octet peut donc contenir 28 (soit 256) valeurs
distinctes.

MAHDI Walid
23
1- Rappel Java
1-7 Types élémentaires ou primitifs (3/5)

Les types numériques flottants


Java évolué

De même que pour les type numériques, il existe deux types


pour les nombres flottants :
float,
double.

la seule différence résidant dans la taille utilisée pour stocker


une valeur de ce type.

float double
Taille en bits 32 64
Exemple de
3.25f 3.25
valeur

MAHDI Walid
24
1- Rappel Java
1-7 Types élémentaires ou primitifs (4/5)

booleen:

Ce type est un vrai type booleen


Java évolué

il accepte seulement deux états :


l'un est nommé true :
Symbolise un état d'acceptation,
l'autre, nommé false,
Symbolise un état de réfutation.

Attention, contrairement du langage C, le type booléen en


Java n'est pas un sous-type numérique :
En C par exemple , la valeur 0 est considérée comme
fausse et les autres valeurs entières comme vraies.
MAHDI Walid
25
1- Rappel Java
1-7 Types élémentaires ou primitifs (5/5)

Le type introduit par le mot clé char, permet la gestion des


caractères.
Java évolué

Java utilise le codage de caractères universel Unicode qui


est un extension du codage ASCII.

Le codage ASCII utilise 8 bits et permet de représenter


seulement 128 caractères.

Le codage Unicode permet la portabilité du code produit.


Il utilise 16 bits pour représenter un caractère.
65536 caractères possible.
Codage des caractères d’alphabets Cyrillique, Hébreux, Arabe,
MAHDI Walid Chinois, Grec, ...
26
1- Rappel Java
1.8 Les types références

Tout type non primitif, est un type de référence.


Java évolué

Le rôle d’un type de référence est de référencer ou repérer


une zone mémoire.

Un type de référence a un rôle analogue à celui des


pointeurs du langage C .

Plus de détails plus loin …

MAHDI Walid
27
1- Rappel Java
1.9 Déclaration et initialisation des variables

Syntaxe :
Type identificateur [= constante ou expression];
int NbredeMois = 12 ; int NbredeMois = 4*3 ;
Java évolué

int nbrDeDoigts = 012 ; // on octal =10 en décimal


int annee = 0x7d4; //on hexadécimal = 2004 en décimal.
boolean Unboolean = false ;
float Unfloatant = 1.3f ;
float Unfloatant = 5.2e+2f //520
double Undouble = 1.3 ; float
char Uncaractère = 'c' ; char Uncaractère = ‘\n' ;
String Unstring= " bonjour \n " ;

Et éventuellement, un « modificateur d’accès ou de


visibilité » : final float pi=3.14159

MAHDI Walid String n'est pas un type primitif, mais une classe
28
2- Les bases du langage
2.9- Les opérateurs (1/3)

Les opérateurs dans Java sont regroupés par :


type d’opérations :
Java évolué

d’affectation
numérique,
de comparaison,
logique,
sur les chaînes de caractères,
de manipulations binaires.

le nombre d’opérandes :
unaire,
binaire,
MAHDI Walid
ternaire.
29
2- Les bases du langage
2.9- Les opérateurs(2/3)

Les opérateurs dans Java sont regroupés par :


++ Pré ou post incrémentation
-- Pré ou post décrémentation
Java évolué

+,- Addition, Soustraction


~ Complément binaire
! Complément logique
(type) Changement du type d'une variable
*, /, % Multiplication, division, modulo
+ Concaténation des chaînes de caractères
<< Décalage à gauche
>> Décalage à droite avec extension du signe
>>> Décalage à droite avec zéro à gauche
<, <= Strictement inférieur, inférieur ou égal
>, >= Strictement supérieur, supérieur ou égal
Instanceof Comparaison de type
MAHDI Walid
30
2- Les bases du langage
2.9- Les opérateurs (3/3)

Les opérateurs dans Java sont regroupés par :


== Égalité
Java évolué

!= Différence
& ET binaire ou logique
^ OU exclusif binaire ou logique
| OU binaire ou logique
&& ET logique
|| OU logique
?: Opérateur ternaire : <condition>?<si vraie>:<si
fausse
>= Affectation et affectations abrégées
+=
-=
MAHDI Walid *=, etc. .
31

Vous aimerez peut-être aussi