Académique Documents
Professionnel Documents
Culture Documents
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)
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
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)
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)
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.
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 !