Documente Academic
Documente Profesional
Documente Cultură
Dpartement Informatique
Support de
Programmation Java
Prpar par
2006-2007
Mlle Imene Sghaier ISETN
Chapitre 1
1. Prsentation de Java
Java est un environnement de programmation oriente objets adapt la distribution
dapplications sur Internet et sintgrant au Web.
Vers la fin de 1995, le langage de programmation Java (Dvelopp par Sun Microsystems) surgit
sur la grande scne d'Internet et obtient immdiatement un norme succs. Il s'agit d'un langage
de conception trs performant qui a t adopt par la majorit des fournisseurs. Ses
caractristiques intgres de scurit offrent un sentiment de confiance aux programmeurs
comme aux utilisateurs des applications. De plus, Java incorpore des fonctionnalits qui facilitent
grandement certaines tches de programmation avances comme la gestion des rseaux, la
connectivit des bases de donnes ou le dveloppement d'applications multitches.
Il se compose de 4 lments :
- un langage de programmation
- une machine virtuelle (JVM)
- un ensemble de classes standards rparties dans diffrentes API
- un ensemble doutils (jdb, javadoc, ...)
En effet, la compilation dune source Java produit du pseudo-code Java qui sera excut par
tout interprteur Java sans aucune modification ou recompilation. Cet "interprteur" est la
"machine virtuelle Java". De plus en plus, cette machine virtuelle utilise un compilateur JIT
(Just In Time) qui transforme, au moment de lexcution, le pseudo-code en code natif (code
machine pour un type d'ordinateur prcis) afin dobtenir la vitesse dexcution maximale.
Le langage Java peut tre utilis pour crer des modules de code rfrencs au sein dune page
html et excuts par un navigateur compatible Java (ou un simple interprteur Java), on parle
alors dApplets. Ces modules de code ont rendu Java populaire car ils permettent un crateur de
site denrichir le contenu de son site de modules dynamiques et/ou interactifs qui tourneront
lidentique quelque soit la machine et le systme utilis par le visiteur de ce site. Java permet
galement de crer des applications autonomes qui peuvent se substituer des applications
dvelopps en langage compil. Pour ces applications lAPI Java apporte un ensemble trs riche
de classes rpondant de nombreux besoins et pouvant tre tendue; cette unique API simplifie
la cration et le dploiement des applications, en effet cette application sexcutera sur tout
systme en utilisant laspect visuel de ce systme.
Il est beaucoup plus facile d'obtenir du code sans erreur l'aide de java qu'avec C++ car
dans Java sont ajoutes des fonctions destines liminer la possibilit de crer du code
contenant les types d'erreurs les plus courants :
o Les concepteurs de java ont supprim l'allocation et la libration manuelles de
mmoire. La mmoire dans java est alloue et libre automatiquement ;
o Ils ont limin l'arithmtique des pointeurs introduisant du mme coup une vraie
gestion de tableau. La notion de rfrence sur une zone mmoire remplace
avantageusement celle de "pointeur", car elle supprime la possibilit d'craser
toute zone mmoire cause d'un compteur erron ;
o Ils ont limin toute possibilit de confusion entre une affectation et un test
d'galit dans une instruction conditionnelle ;
o Ils ont supprim l'hritage multiple en le remplaant par une nouvelle notion d'interface
drive d'Objective C. Les interfaces offrent tout ce qui est obtenu partir de l'hritage
multiple, sans la complexit de la gestion de hirarchie d'hritage multiple.
des pages sur Internet via des URL avec la mme facilit qu'elles accdent un fichier local
sur le systme.
Les fonctionnalits rseau de Java sont la fois fiables et d'utilisation aise. Java est simple
dutilisation lorsqu'il s'agit de mettre en oeuvre des tches lourdes, comme l'ouverture d'une
connexion avec un socket. De plus, Java rend plus facile l'laboration des scripts CGI (Common
Gateway Interface), et un mcanisme lgant, nomm servlet, augmente considrablement
l'efficacit du traitement ct serveur, assur par Java. De nombreux serveurs Web, parmi les
plus courants, supportent les servlets. Le mcanisme d'invocation de mthode distance (RMI)
autorise la communication entre objets distribus.
9 Scurit : Java a t conu pour tre exploit dans des environnements serveur et
distribus. Dans ce but, la scurit na pas t nglige. Java permet la construction de
systmes inaltrables et sans virus.
9 Sr : La scurit fait partie intgrante du systme d'excution et du compilateur. Un
programme Java plant ne menace pas le systme d'exploitation. Il ne peut y avoir d'accs
direct la mmoire. L'accs au disque dur est rglement dans une applet. Les
programmes fonctionnant sur le Web sont soumis aux restrictions suivantes dans la
version 1.0 de Java :
o Aucun programme ne peut ouvrir, lire, crire ou effacer un fichier sur le systme
de l'utilisateur ;
o Aucun programme ne peut lancer un autre programme sur le systme de
l'utilisateur ;
o Toute fentre cre par le programme est clairement identifie comme fentre Java,
ce qui interdit par exemple la cration d'une fausse fentre demandant un mot de
passe ;
o Les programmes ne peuvent pas se connecter d'autres sites Web que celui dont
ils proviennent.
9 Architecture neutre : Le compilateur gnre un format de fichier objet dont
larchitecture est neutre. Le code compil est excutable sur de nombreux processeurs,
partir du moment o le systme dexcution de Java est prsent. Pour ce faire, le
compilateur Java gnre des instructions en bytecode qui nont de lien avec aucune
architecture particulire. Au contraire, ces instructions ont t conues pour tre la fois
faciles interprter et faciles traduire en code natif.
9 Portable : A la diffrence du C/C++, on ne trouve pas les aspects de dpendance de la
mise en uvre dans la spcification. Les tailles des types de donnes primaires sont
spcifies, ainsi que le comportement arithmtique qui leur est applicable.
9 Interprt : Le source est compil en pseudo code puis excut par un interprteur Java
(la Machine Virtuelle Java (JVM)).
9 Indpendant de toute plateforme : Linterprteur Java peut excuter les bytecode
directement sur nimporte quelle machine sur laquelle il a t port. Il n'y a pas de
compilation spcifique pour chaque plate forme. Le code reste indpendant de la machine
sur laquelle il s'excute. Il est possible d'excuter des programmes Java sur tous les
environnements qui possdent une JVM. Cette indpendance est assure au niveau du
code source grce Unicode et au niveau du bytecode.
9 Performances leves : En gnral, les performances des bytecodes interprts sont tout
fait suffisantes, il existe toutefois des situations dans lesquelles des performances plus
leves sont ncessaires. Les bytecodes peuvent tre traduits la vole en code machine
pour lunit centrale destine accueillir lapplication.
9 Multithread : Il permet l'utilisation de threads qui sont des units d'excution isoles. La
JVM elle-mme utilise plusieurs threads. Ce qui permet des traitements multitches dans
une mme application. Les avantages du multithread sont une meilleure inter-ractivit et
un meilleur comportement en temps rel.
9 Dynamique : Java a t conu pour sadapter un environnement qui volue, et pousse le
concept orient objet son optimum en permettant ldition des liens entre modules
objets dynamiquement au moment de lexcution, en particulier dans le cas ou une
application sappuie sur une librairie de classes (une librairie de composants logiciels).
Mme si cette librairie de classes volue, il nest pas ncessaire de modifier ou de
recompiler lapplication qui y fait appel. Ces nouvelles versions de modules seront prises
en compte sans problmes ds le moment ou elles auront t installes.
9 Une application est un programme excut localement comme le cas dun programme
C++.
9 Une applet est une application excute par lintermdiaire dun navigateur Web qui
dfinit automatiquement un cadre de travail. Les dfinitions de ce cadre sont dfinies par
le code HTML accompagnant lapplet.
Les diffrences entre une applet et une application sont :
Les applets n'ont pas de bloc main() : la mthode main() est appele par la machine virtuelle pour
excuter une application.
Les applets ne peuvent pas tre testes avec l'interprteur mais doivent tre intgres une page
HTML, elle mme visualise avec un navigateur sachant grer les applets Java, ou testes avec
l'applet viewer.