Vous êtes sur la page 1sur 13

JAVA

PROGRAMMATION OBJET

Abdellatif HAIR
Université Sultan Moulay Slimane
Faculté des Sciences et Techniques
B.P. 523, Béni-Mellal, MAROC
PRÉSENTATION DU LANGAGE
JAVA
HISTORIQUE
 1991 naissance de Java par James Gosling chez
Sun Microsystems

 1993 Word Wide Web -WWW- a fait son


apparition

 1995 Réalisation du logiciel HotJava, navigateur


Web écrit par Sun en Java

 Java s’est vu apporter quelques améliorations afin de


s’adapter à la programmation Web
HISTORIQUE
 Java s'est très rapidement taillé une place
importante en particulier dans le domaine de l'internet
et des applications client-serveur
 1996 version 1.04 et 1.02
 1998 version 1.1
 1999 version 1.2, finalement rebaptisée Java 2
 2000 version 1.4, toujours appelée Java 2
 ….

 Attention, Java est passé directement de la version


1.4 à la version 5.0

 En effet, l’ancienne numérotation des différentes


versions (1.0, 1.1, 1.2,…) ne reflétaient pas les
importantes modifications effectuées ; elles auraient
plutôt dû s’appeler 1, 2, ...
CARACTERISTIQUES
 Java est un langage orienté objet à classes (les
objets sont décrits/regroupés dans des classes) inspiré
de :
 Smalltalk, Objective C dans sa structure
 Ada (paquetage, exception…) dans sa sémantique
 C/C++ dans sa syntaxe

 Java est presque un pure langage O.O.


 Programme Java est constitué uniquement de classes
 Mais existence de types primitifs int , float, chat … qui ne
sont pas des objets

 fourni avec le JDK (Java Development Kit) :


 outils de développement
 ensemble de paquetages très riches et très variés
CARACTERISTIQUES
 Compilation d’un code source

 Un code source ne peut pas être exécuté directement


par un ordinateur

 Il faut traduire ce code source dans un langage que


l’ordinateur (le processeur de l'ordinateur) peut
comprendre (langage natif)

 Un compilateur est un programme qui effectue cette


traduction
CARACTERISTIQUES

 Compilation en Java -> bytecode

 En Java, le code source n’est pas traduit directement


dans le langage de l’ordinateur

 Il est d’abord traduit dans un langage appelé


"bytecode" , langage d’une machine virtuelle (JVM ;
Java Virtual Machine) définie par Sun

 Ce langage est indépendant de l’ordinateur qui va


exécuter le programme

 le même code compilé s’exécute sur plusieurs plates-


formes "Write once, run everywhere"
CARACTERISTIQUES
 Exécution du bytecode
 Le bytecode doit être exécuté par une JVM

 Cette JVM n'existe pas ; elle est simulée par un

programme qui :

 lit les instructions (en bytecode) du programme

 les traduit dans le langage natif du processeur de

l’ordinateur

 lance leur exécution


CARACTERISTIQUES
 Les JVM : Java Virtual Machine

 Les systèmes qui veulent pouvoir exécuter un


programme Java doivent fournir une JVM

 Tous les systèmes ont une JVM (Linux,Windows,


MacOs,…)

 Il existe aussi quelques JVM en dur, sous forme de


processeurs dont le langage natif est le bytecode ; elles
sont rarement utilisées
CARACTERISTIQUES

Byte
code
CARACTERISTIQUES
 Java développe deux genres de programmes :

 Les applications qui sont des logiciels classiques


s'exécutant directement sur une plate-forme spécifique
soit à travers une JVM soit directement en code
exécutable par le système d'exploitation

 les applets qui sont des programmes java insérés dans


un document HTML s'exécutant à travers la JVM du
navigateur lisant le document HTML
AUTRES CARACTERISTIQUES
 multi-tâches (thread)
 Un thread -processus léger- est un flot de contrôle
séquentiel indépendant au sein d’un processus
 Les threads s’exécutent à l’intérieur d’un programme
 Une application ou une applet peut avoir plusieurs
thread

 Robuste
 Typage des données très strict
 Pas de pointeur

 Haute performance
 Discutable car java est un langage pseudo interprété
 Techniques de "Just in Time" (JIT) permettent de ne
traduire qu'une seule fois en code natif les instructions
qui sont exécutés
AUTRES CARACTERISTIQUES
 sûr
 Des vérifications au chargement des classes et durant
leur exécution
 Un débordement de tableau déclenchera automatiquement
une exception
 L’absence d’arithmétique de pointeur évite les
malversations

 adapté à Internet
 chargement de classes en cours d’exécution (le plus
souvent par le réseau : applet ou RMI)
 facilités pour distribuer les traitements par plusieurs
machines (sockets, RMI, Corba, EJB)

Vous aimerez peut-être aussi