Vous êtes sur la page 1sur 25

Niveau: 2ème Année GL/RT

Enseignante: Sana HAMDI


Email: sana.hamdi@fst.utm.tn
sanahamdi.fst@gmail.com
Chapitre1: Introduction à la programmation orientée objet
Chapitre2: Langage Java : Introduction et caractéristiques
Chapitre3: Notions de base Java
Chapitre4: Classes et Objets Java
Chapitre5: Héritage, Polymorphisme et Classes Abstraites
Chapitre 6: Les Interfaces
Chapitre 7: Les Exceptions

2
CHAPITRE2

3
PLAN DU CHAPITRE 2
1. Historique
2. Plateforme Java
3. Caractéristiques de java
4. Comparaison avec C++

4
PLAN DU CHAPITRE 2
1. Rapide Historique
2. Plateforme Java
3. Caractéristiques de java
4. Comparaison avec C++

5
 Le projet de départ de Java était de faire un langage de programmation indépendant de la CPU.
 Cette tâche a été confiée à James Gosling qui commença en travaillant sur des modifications du
langage C++
 Mais l’idée fut bientôt abandonnée au profit du développement d’un nouveau langage de
programmation qu’ils appelèrent Oak (1992)

 Oak a servi à écrire le browser web,WebRunner, de Sun MicroSystems


 Sun a décidé de commercialiser oak sous le nom Java (café en argot américain)

 La première version de Java 1.0 fut proposée en 1995, et la version 1.1 est apparue en décembre 1996.
 Des améliorations importantes de Java 1 ont mené à Java 2 avec la version du JDK 1.2 (1998)
 En 2009 la plateforme java a été achetée par la société Oracle
 La dernière version : JDK 13 (13ème version du Java SE)
6
1. Rapide Historique
2. Plateforme Java
3. Caractéristiques de java
4. Comparaison avec C++

7
 La plateforme Java, uniquement software, est exécutée sur la
plateforme du système d’exploitation

 Elle se compose de:


1. la JavaVirtual Machine (JVM)
2. la JavaApplication Programming Interface (API)

8
 La JVM est un environnement d'exécution pour applications Java.
 C'est un des éléments les plus importants de la plate-forme Java.
 Elle assure l'indépendance du matériel et du système d'exploitation lors de
l'exécution des applications Java. Une application Java ne s'exécute pas
directement dans le système d'exploitation mais dans une machine
virtuelle qui s'exécute dans le système d'exploitation
 Son mode de fonctionnement est relativement similaire à celui d'un
ordinateur : elle exécute des instructions qui manipulent différentes zones
de mémoire dédiées de la JVM.
 Elle possède un langage natif propre et traduit un programme écrit
dans ce langage vers le langage natif de l’ordinateur (bytecode)

9
 La machine virtuelle permet notamment :

- l'interprétation du bytecode
- l'interaction avec le système d'exploitation
- la gestion de sa mémoire grâce au ramasse-miettes

10
Compilation et Portabilité

11
 Java fournit de nombreuses librairies de classes remplissant des
fonctionnalités très diverses : c'est l'API Java (Interface pour la
Programmation d’Applications)

Cet ensemble de bibliothèques permettant une programmation


plus aisée car les fonctions deviennent indépendantes du matériel.

 Ces classes sont regroupées, par catégories, en paquetages (ou


"packages").

12
Les principaux paquetages
 java.util : structures de données classiques
 java.io : entrées / sorties
 java.lang : chaînes de caractères, interaction avec l'OS, threads
 java.applet : les applets sur le web
 java.awt : interfaces graphiques, images et dessins
 javax.swing : package récent proposant des composants « légers » pour la création
d’interfaces graphiques
 java.net : sockets, URL
 java.rmi : Remote Method Invocation
 java.sql : fournit le package JDBC

13
 C++ est un langage compilé
Etapes qui ont lieu avant l'exécution pour un langage compilé comme C++
Fichier
de Librairies
Code
(.cpp)

Edition de liens Programme


Compilation Code objet
exécutable
(.obj ou .o)

Autres code objet


Fichier
d'entête
(.h)
14
 Cas de Java qui est un langage compilé et interprété

Avant exécution Exécution

Autres byte code

Fichier
Byte code Machine virtuelle
de code Compilation
Java (JVM)
Java
javac MaClasse.class java
MaClasse.java

15
1. Historique
2. Plateforme Java
3. Caractéristiques de java
4. Comparaison avec C++

16
 Orienté objet:
 Meilleure modularité.
 Maintenance aisée des applications.
 Optimisation des composants.

 Simple:
 Supprime les aspects lourds et pénibles comme l'héritage multiple.
 Interdit la manipulation de pointeurs générateurs de nombreux bugs.
 Fournit via sonApplication Programming InterfaceAPI un très grand nombre d'outils avec
des fonctionnalités puissantes qui vont simplifier et accélérer le développement
d'applications.
 Syntaxe proche du C/C++ mais plus simple.

17
 Sécurisé:
 Limitation des erreurs par la syntaxe.
 Vérification par le compilateur et l'interpréteur.

 Portable: Indépendant de la plate-forme


 Une même application puisse s'exécuter sur différents ordinateurs, en
s'abstrayant des spécificités du matériel et du système.
 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 »

18
 multi-thread
 Un thread est une entité d'exécution qui peut s'exécuter en parallèle d'une
manière concurrente à d'autres threads au sein d'une même application.
 Lancement de plusieurs threads en même temps sans blocage.

 Réparti:
 JAVA supporte des mécanismes de communication à distance au moyen de son
API réseau.

19
 Fiable
 Gestion automatique de la mémoire (ramasse-miette ou "garbage collector")
 Gestion des exceptions
 Sources d'erreurs limitées
 typage fort,
 pas d'héritage multiple,
 pas de manipulations de pointeurs, etc.
 Vérifications faites par le compilateur facilitant une plus grande rigueur du code

20
 Environnement de développement fourni par Sun puis Oracle
 JDK signifie Java Development Kit (Kit de développement Java).
 Il contient :
 les classes de base de l'API java (plusieurs centaines),
 la documentation au format HTML
 le compilateur : javac
 la JVM (machine virtuelle) : java
 le visualiseur d'applets : appletviewer
 le générateur de documentation : javadoc
 etc.

21
1. Historique
2. Plateforme Java
3. Caractéristiques de java
4. Comparaison avec C++

22
 Pas de pointeurs, seulement des références
 Pas de typedef
 Pas de variables ni de fonctions en dehors des classes
 Pas de fonctions à nombre variable d’arguments
 Pas d'héritage multiple de classes
 Pas de surcharge d’opérateurs
 Pas de passage par copie pour les objets

23
 Nécessite l’installation d’un interpréteur pour pouvoir exécuter un
programme Java
 L'interprétation du code ralentit l'exécution
 Gestion gourmande de la mémoire
 Impossibilité d’opérations de « bas niveau » liées au matériel

24
Merci pour votre attention !

Dr. Sana Hamdi

Maitre Assistante en Informatique à l’INSAT

Membre du Laboratoire LIPAH (FST-Tunisie)


et du Laboratoire SAMOVAR (Telecom SudParis-France)

Vous aimerez peut-être aussi