ChapitreP1 01 Presentation Langage Java
ChapitreP1 01 Presentation Langage Java
ChapitreP1 01 Presentation Langage Java
Introduction
Puisque la machine virtuelle Java est disponible sur de nombreux systèmes d'exploitation
différents, les mêmes fichiers .class sont capables de fonctionner sur Microsoft Windows,
le système d'exploitation Solaris ™ (SE Solaris), Linux ou Mac OS. Certaines machines
virtuelles, telles que Java SE HotSpot at a glance, effectuent des étapes supplémentaires
lors de l'exécution pour donner à votre programme une amélioration des performances.
Cela inclut diverses tâches telles que trouver les goulots d'étranglement et recompiler (en
code natif) les sections de code fréquemment utilisées.
I. La Plateforme Java
Une plateforme est l'environnement matériel ou logiciel dans lequel un programme est
exécuté. Nous avons déjà mentionné certains des plateformes les plus populaires comme
Microsoft Windows, Linux, Solaris et Mac OS. La plupart des plateformes peuvent être
décrits comme étant une combinaison du système d'exploitation et du matériel sous-
jacent. La plateforme Java diffère de la plupart des autres plateformes en ce qu'elle est
une plateforme logicielle seule qui fonctionne sur d'autres plateformes basées sur le
matériel.
Le schéma suivant est issu du site web www.oracle.com et présente les différentes
composantes de la plateforme Java.
(ramasse-miette) dès qu’un objet n’est plus référencé dans le programme, c’est-à-
dire quand aucune variable n’y fait référence.
- de la sécurité : Au chargement, elle vérifie qu’il n’est pas fait appel à de la
mémoire non initialisée, que des conversions de types illégales ne sont pas
effectuées, que le programme ne manipule pas des pointeurs en mémoire. Dans le
cas d’applets java, la JVM interdit au programme l’accès au réseau uniquement
vers l’hôte qui diffuse l’applet.
- de l’interfaçage avec du code natif (par exemple, code écrit en langage C) : la
plupart des API de base de java font appel à du code natif qui est fourni avec le
JRE, afin d’interagir avec le système hôte.
L’API java
L'API est une grande collection de composants logiciels, prêts à l'emploi, qui offrent de
nombreuses fonctionnalités utiles. Elles sont regroupées dans les bibliothèques de classes
et interfaces connexes; ces bibliothèques sont connues sous forme de paquets.
Simple : La syntaxe de Java est similaire à celle du langage C et C++, mais elle omet des
caractéristiques sémantiques de C et C++ qui rendent ces langages complexes et non
sécurisés.
Orienté objet : En java tout est objet mis à part les types de données primitifs. En plus, il
existe des classes préfabriquées qi permettent d’encapsuler les types primitifs dans des
objets.
Distribué : Java implémente les protocoles réseaux standard, ce qui permet de
développer des applications client/serveur en architecture distribuée, afin d’invoquer des
traitements et/ou des manipulations de données sur des machines distants.
Multitâche : Java permet de développer des applications mettant en œuvre l’exécution
simultanées de plusieurs threads (ou processus légers). Ceci permet d’effectuer plusieurs
traitements à la fois, afin d’accroitre la rapidité des applications, soit en partageant le
temps CPU soit en partageant les traitements entre plusieurs processus.
Dynamique : En java, il est possible de modifier une ou plusieurs classes sans avoir à
effectuer une mise à jour de ces modifications sur l’ensemble du programme. La
vérification de l’existence des classes se fait au moment de la compilation et l’appel du
code de ces classes ne se fait qu’au moment de l’exécution. Ce procédé permet d’avoir
des applications allégées en taille mémoire.
Architecture neutre : Le compilateur produit du bytecode (langage binaire
intermédiaire) qui est indépendant de toute architecture matérielle, de tout système
d’exploitation et de tout dispositif de gestion de l’interface utilisateur graphique (GUI).
Portable : Étant un langage interprété, java est portable sur différentes plateformes. De
plus, les bibliothèques de classes standard de java permet de déployé le code sur
différentes plateformes sans adaptation.