31/01/2012
Janvier 2012 1
1 - Vue générale
2 - Mon premier programme
3 - Types de Programme Java
1
2
Java c’est quoi ?
Technologie développée par SUN Microsystems™ lancée
en 1995
« Java » c’est à la fois :
Un langage de programmation
Une plate-forme = environnement logiciel dans lequel les
programmes java s'exécutent :
une machine virtuelle : la JVM (Java Virtual Machine)
des APIs (Application Programming Interfaces)
3
Java
Dans un des premiers papiers* sur le langage
JAVA, SUN le décrit ainsi :
« Java : a simple, object-oriented, distributed, robust,
secure, architecture neutral, portable, high-
performance, multithreaded, and dynamic language »
4
* White Paper :The Java Language Environment - James Gosling, Henry McGilton - May 1996
http://java.sun.com/docs/white/langenv/
Java
Principales caractéristiques
simple” et orienté objet
portable (indépendant d’une architecture ou d’un OS)
robuste et sécurisé
dynamique et multithreaded
5
Java : Principe de fonctionnement
6
31/01/2012
Janvier 2012 2
Java : Principe de fonctionnement
7
Compilation :
javac HelloWorld.java
Exécution (JVM) :
java HelloWorld
HelloWorld.java HelloWorld.class
Hello World!
Hello World!
Hello World!
javac java
public class HelloWorld{
public static void main(String[] args) {
int i = 0;
while (i < 3) {
System.out.println("Hello World!");
i++;
}
}
}
Fichier
HelloWorld.java
Un langage compilé / interpré
Compilation d'un programme JAVA : génération de byte-code
Le byte-code est :
proche d'un langage machine
indépendant de la plateforme d'exécution (matériel + OS)
8
public class HelloWorld {
public static void main(String[] args) {
int i = 0;
while (i < 3) {
System.out.println("Hello World!");
i++;
}
}
}
0110001
0010100
1100001
1110110
0100...
...
HelloWorld.java
Code source
javac
HelloWorld.class
byte-code
La machine virtuelle Java
Exécution d'un programme Java compilé
Le byte-code assure la portabilité des programmes Java :
Langage d'une Machine Virtuelle
A l'exécution, un interpréteur simule cette machine
virtuelle
9
javac
Java
VM
Java
VM
Java
VM
Sun Sparc
Solaris
Linux
.java
source
.class
byte-code
java
La machine virtuelle java
Principes de fonctionnement
Chargement
chargement sélectif et dynamique des classes
vérification statique du code (tentatives de modification de la machine
virtuelle, ...)
Protection lors de l'exécution
Le "security manager" possède un droit de veto (accès "sauvages" au
système de fichiers, ...)
Cette protection peut-être modulée
10
.class
Performances
Exécution d'un programme Java
le code Java est compact,
le chargement des classes nécessaires est sélectif et
dynamique,
... mais Java est semi-interprété (pas exécuté directement
sur la machine : JVM)
Palier aux lenteurs de l'interprétation
utilisation d ’un JIT (compilateur « Just-in-Time »)
compilation à la volée du byte-code
réutilisation du code déjà compilé
intégration du JIT HotSpot dans JVM depuis version 1.3
Performance of Java versus C++ J.P.Lewis and Ulrich Neumann
(http://www.idiom.com/%7Ezilla/Computer/javaCbenchmark.html)
11
La plateforme Java
Plateforme
= Environnement matériel et/ou logiciel dans lequel un programme
s'exécute.
La plus part des plateformes sont la combinaison d'un OS et du matériel
sous-jacent (MS Windows + Intel, Linux + Intel, Solaris + Sparc, Mac Os X +
Power PC)
La plateforme Java est entièrement logicielle et s'exécute au dessus des
plateformes matérielles
12
API (Application Programming Interface) Java :
Bibliothèques Java standards sur lesquelles le
programmeur peut s'appuyer pour écrire son code.
http://docs.oracle.com/javase/6/docs/api/
31/01/2012
Janvier 2012 3
La plateforme Java
API Java
API Java http://docs.oracle.com/javase/6/docs/api/
(très) vaste collection de composants logiciels (classes et interfaces)
fournissant de nombreuses fonctionnalités (> 6000 classes)
organisée en bibliothèques (packages)
offre de nombreux services de manière standard (indépendamment de la
plateforme matérielle)
Programmer en Java nécessite une bonne connaissance de l'API.
Attention à la courbe d'apprentissage (« learning curve ») qui peut être longue…
13
API
http://docs.oracle.com/javase/6/docs/api/
14
Pour résumer
Java
Language
APIs
JVM
15
rences
« Java - tête la première »
Kathy Sierra, Bert Bates,1re édition, O’Reilly, septembre 2004
«Cahiers du Programmeur - Java - 1 .4 et 5.0 »
Emmanuel Puybaret, Eyrolles, mars 2006
« Introduction à Java », 2e édition
Pat Niemeyer et Jonathan Knudsen, O’Reilly, déc. 2002
« Au coeur de Java 2 - Volume 1 : Notions fondamentales »
Cay S. Horstmann, Gary Cornell, CampusPress, nov. 2003
« Thinking in Java »,
Bruce Eckel - Prentice-Hall ( www.BruceEckel.com ,
www.penserenjava.free)
« JAVA in a nutshell, 5th Edition »,
David Flanagan - O'Reilly 2005
16
férences URLs
http://java.sun.com
Site officiel Java de SUN
JDK, Tutoriels, Documentations, spécifications, …
http://www.javaworld.com
Magazine électronique
http://www.jguru.com, http://www.jdance.com
Sites dédiés à la technologie java
applets, applications, notes techniques, forums de discussions
www.developpez.com
des tutoriels, des FAQ, des ressources….
http://penserenjava.free.fr
une traduction du livre de BruceEckel « Thinking in Java »
17
18
31/01/2012
Janvier 2012 4
Prérequis
Pour pouvoir écrire un programme Java il faut au
moins :
The Java SE Development Kit 6 (JDK 6)
un éditeur de texte
Remarque : Un plugin Java pour navigateur ne suffit
pas : il ne contient que la JRE (Java Runtime
Environment)
19
Premier programme : 3 étapes
1. Codage
Création du fichier source HelloWorld.java
2. Compilation
Compilation du fichier source HelloWorld.java en
HelloWorld.class
3. Exécution
Utilisation de la JVM locale pour exécuter le fichier
HelloWorld.class
20
public class HelloWorld {
public static void main(String[] args) {
int i = 0;
while (i < 3) {
System.out.println("Hello World!");
i++;
}
}
}
1- Codage (exemple pas très objet…)
21
1 Tout code java doit être défini à
l’intérieur d’une classe
La description de la
classe est effectuée à
l'intérieur d'un bloc { }
2
le mot clé public définit la
visibilité de la classe
Le code de la classe
doit être enregistré
dans un fichier
de même nom
(casse comprise)
que la classe :
HelloWorld.java
3
4 Java fait la différence
majuscule/minuscules
HelloWorld helloworld
public class HelloWorld {
public static void main(String[] args) {
int i = 0;
while (i < 3) {
System.out.println("Hello World!");
i++;
}
}
}
1- Codage (exemple pas très objet…)
22
Le point d'entrée pour l'exécution
est la méthode main()
le mot clé static signifie que
main est une méthode de classe
Une application Java
doit contenir au moins
une méthode main
public class HelloWorld {
public static void main(String[] args) {
int i = 0;
while (i < 3) {
System.out.println("Hello World!");
i++;
}
}
}
1- Codage (exemple pas très objet…)
23
Utilisation de la classe System
inclue dans l’API standard pour
l’affichage.
Le code
2. Compilation
Compilation du fichier source en HelloWorld.class
Dans un terminal
Dans /home/jules/POO/, utilisation du
programme javac java compiler ») :
24
jules@turing:~/POO$ ls
HelloWorld.java
jules@turing:~/POO$ javac HelloWorld.java
jules@turing:~/POO$ ls
HelloWorld.class HelloWorld.java
jules@turing:~/POO$
31/01/2012
Janvier 2012 5
3. Exécution
Exécution de HelloWorld.class dans la JVM
Dans /home/joe/, le programme java lance la JVM sur
le fichier .class passé en paramètre
(sans l’extension .class)
Dans un terminal :
25
jules@turing:~/POO$ java HelloWorld
Hello World!
Hello World!
Hello World!
jules@turing:~/POO$
Résumé
La technologie Java :
un langage de programmation orienté objet
une machine virtuelle : JVM.
des APIs, notamment l’API standard
Programmer en java :
Il faut au moins définir une classe.
La méthode main est le point d’entrée du programme.
Les programmes javac et java permette de compiler
et exécuter.
26
27
Les Applications indépendantes
Programmes autonomes (stand-alone)
Seuls diffèrent les contextes d'invocation et
d’exécution
Les droits des applets et des applications ne sont pas les mêmes
2 types de programmes Java
28
Les Applets
Programmes exécutées dans
l’environnement d’un navigateur Web
et chargés au travers de pages HTML
Application indépendante
L’application est définie par un
ensemble de classes dont une
jouera le rôle de classe principale
La compilation de la classe
principale entraîne la compilation
de toutes les classes utilisées
javac make
Pour exécuter l'application on
indique à l'interpréteur java le
nom de la classe principale
java charge les classes nécessaires
au fur et à mesure de l'exécution
(sélectif et dynamique)
29
Application indépendante
Chaque application doit posséder une classe principale
classe possédant une méthode de signature
public static void main(String[] args)
Cette méthode sert de point d’entrée pour l’exécution
l’exécution de l ’application démarre par l’interprétation
de cette méthode
ex : java appliVisage1
30
Exécute le code défini
dans la méthode main
contenue dans le fichier
appliVisage1.class
Tableau de chaînes de caractères
(équivalent à argc, argv du C)
1 / 6 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !