la galaxie java
TRANSCRIPT
1 of 30
LA GALAXIE JAVA
La galaxie Java
2 of 30
La galaxie JAVA
st-ce que ça
La galaxie Java
• Les lignes de force
• Les raisons d’un succès
• JAVA dans le systèmed’information
• Comment ça marche? (et emarche?)
• L’Objet selon Java
4 of 30
Les lignes de
/modularité
La galaxie Java
force
• code multi-plateformes
• code dynamique
• organisation
• sécurité
• multi-tâches
5 of 30
programmer en
j’adore
A.F
au
cillo
n
La galaxie Java
Java?
• formulations élégantes
• souci constant de génielogiciel
• dispositifs de sécurité
• compromis bien dosés
6 of 30
techniques
La galaxie Java
complémentaires
• composants “beans”
• e.j.b.
• servlets
• distribution (RMI, JINI)
réseau
7 of 30
librairies
/S, E/S objets
ccès B.D.D.
objets distants
réseau
La galaxie Java
I.H.M. portables, graphique
utilitaires programmation
internationalisation
E
sécurité
calculs
acomposants dynamiques
8 of 30
extensions
b.d.d, transactions
composants d’entreprise
échanges sécurisés
rés
e, deploiement
La galaxie Java
graphique, 3D, multimedia
utilitaires devt.
eau, services répartis, annuaires
embarqué
JavaCard,....
systèm
9 of 30
Java dans le système
vellesations pourvellesctures
La galaxie Java
d’information
de nouapplicde nouarchite
j’adopte
A.F
au
cillo
n
10 of 30
client léger sur Web
“navigateur”
Applet
HTMLXML, ...
La galaxie Java
serveurHTTP
Servlets
11 of 30
client “lourd”
application
et
La galaxie Java
serveurdéploiement
contrôle
serveur
applicatif intra/extra-n
12 of 30
nota: Java comme langage d’extension
ication non JAVA
chassement
réseau,E/S
La galaxie Java
Appl
en
J.N.I
CORBA
13 of 30
serveurs d’application
La galaxie Java
RESSOURCES
appl.A
appl.B
appl.C
persistance
14 of 30
serveurs hiérarchisés
La galaxie Java
déploiem
ent/m
ainte
nance
échanges a
pplicatif
s
16 of 30
Comment ça marche ?
e de
librairiesjava
ge
code)ions JVM
me de type B
La galaxie Java
OSsystème de
JVM(interpréteur spécifique)
librairiesjava
fenêtrageOS
systèm
JVM(interpréteur spécifique)
fenêtra
fichier binaire (pseudo-conforme aux spécificat
plate-forme de type A plate-for
17 of 30
techniques d’exécution
ERPRETE
MPILATEURA LA VOLEE (JIT)
codes natifsen mémoire
La galaxie Java
152 invokestatic #66 <Methodjava.lang.String valueOf(char)>155 astore_3156 goto 203159 aload_0160 getfield #56 <Field char lastOp>163 bipush 61165 if_icmpne 194168 aload_0169 aconst_null170 putfield #58 <Fieldjava.math.BigDecimal result>173 aload_0174 bipush 43176 putfield #56 <Field char lastOp>
INTlit, exécute
lit, exécute
.... CO
compile le fichieren codes natifset les exécute
compilationoptimisée
interprétationen back-up
HOTSPOT
18 of 30
sécurité
e
isés :
dbox”)
ues)
La galaxie Java
• chargeurs de classes
• vérificateur de pseudo-cod
• espaces d’exécution sécur
* politique par défaut (“san
* politiques personnalisées
(codes authentifiés
+ autorisations spécifiq
19 of 30
dans la soute ....
émoire
e du tas)
s
e)
La galaxie Java
• gestion automatique de la m
(glaneur de mémoire
+ réorganisation dynamiqu
• gestion de processus léger
(ordonnanceur intégré
ou threads natifs du systèm
20 of 30
L’Objet selon JAVA
C++ !
La galaxie Java
• ça ressemble à du C++
• ça n’a pas le “goût” du C++
• ce n’est absolument pas du
21 of 30
La définition de classe
structeur
La galaxie Java
import fr.emse.medialab.util.* ;
public class UneClasse extends SuperClasse {
// membres
public final String oid ;
private Chose obj ;.....
public setChose(Chose arg) {// mutateur classique
obj=arg ;
}
public static class Comparator extends
Chose.Comparator {// classe membre!
int compare(Object o1, Object o2){
return super.compare( ((Unclasse)o1).obj,
((UneClasse)o2).obj) ;
}
} // pas de surcharge d’opérateur
// non membres
public UneClasse(Truc truc, Chose obj){//con
super(truc);
oid = truc.toString() ;......
}//pas de destructeur (ou presque)
}
// RIEN EN DEHORS DE LA CLASSE!
22 of 30
rien hors de la classe
tions
tionnent par classes
La galaxie Java
• pas de variables ou de fonc“globales”
• pas de fichier “include”
les contrôles de types foncintrospection du binaire des
double ix = Math.sin( iy * Math.PI) ;
double iz = StrictMath.sin(valeur) ;
23 of 30
encapsulation
dans des
:
ate ),
défaut),
éritage
La galaxie Java
Les classes sont regroupées“packages”fr.emse.medialab.graphics
edu.mit.medialab.graphics
L’encapsulation se considère
• au niveau de la classe (priv
• au niveau du package (par
• au niveau d’une relation d’h(protected )
24 of 30
types
nstance!
r
on}
ance virtuelles)
La galaxie Java
type variable != classe de l’ i
• aspect conceptuelManager leSousChef; // extends Salarie ....
Manager lePatron = new PDG(...); // extends Manage
Salarie[] employés = { leLampiste, leSousChef, lePatr
• aspect “physique”
• aspect évaluation (méthodes d’inst
PDG chef = new PDG(..);
Manager reChef = chef ;
// tout est “référence”
reChef
chef
25 of 30
polymorphisme: héritage
classe
trat”
avée
cification des méthodes
surchargerclasse
tive deal )
La galaxie Java
• on n’hérite que d’une seule
• on ne peut aggraver le “con
* pas d’encapsulation aggr
* pas “plus” d’exceptionle type des exceptions propagées fait partie de la spé
* par contre possibilité de des méthodes de la super-
• on peut bloquer toute tentaredéfinition (modificateur fin
26 of 30
types abstraits purs
;
essager { {
ts Messager { {
oumpf.fr”) ;
nvoiMessage (
La galaxie Java
public class Client {.....Messager messager ;.....
public interface Messager {public void envoiMessage(String message)
}
public class Fax extends Telephone implements Mpublic void envoiMessage(String message)...
public class EMail extends AgentReseau implemenpublic void envoiMessage(String message)...
Client dupond, durand ;....dupond. messager = new Fax(“0141331733”) ;durand. messager = new EMail(“[email protected] (int ct= 0 ; ct < tableauClient.length; ct++){
tableauClient[ct]. messager.e“Tout va bien!”);
}
27 of 30
ase de Données
édiaire
La galaxie Java
.
requêtes texte
B
pseudo-base (tests)
serveur interm
IHM
accès/ réseau
INTERFA
CE S
ERVEU
R
28 of 30
Classes membres
La galaxie Java
public class Pile {private Object[] tableExtensible ;private int sommetDePile ;...private class ParcoursPile
implements java.util.Enumeration {int index = sommetDePile ;public boolean hasMoreElements(){ return index >= 0;}public Object nextElement(){ return tableExtensible [index--];}
} // fin parcoursPile
public java.util.Enumeration elements() { return new ParcoursPile();}...
}
29 of 30
Autres caractéristiques
’accès
rtition sur
La galaxie Java
• gestion exceptions
• processus et concurrence d
• prise en compte de la réparéseau
• documentation intégrée
30 of 30
des savoir-faires en
pratiques
tion
La galaxie Java
devenir
• idiomes, “patterns”, bonnes
• relations conception/réalisa