Beruflich Dokumente
Kultur Dokumente
Logiciel :
programmes + documentation + licence + support (CD...). Cet ensemble peut
tre commercialis, distribu des utilisateurs.
Application:
logiciel, ou ensemble de logiciels qui cooprent par exemple, un site web,
application mobile (serveur HTTP+CGI(Common Gateway Interface)+base de
donnes...)
Progiciel :
logiciel propritaire destin un usage spcifique et adaptable chaque
utilisateur (typiquement: SAP, Saqqara, Commerce server...).
Langage C - FSDM 3
Gnration 1 : Programmation Spaghettis :
o Assembleur, Fortran I, Basic
o Logique de saut goto . Absence totale d'entits autonomes et
modifiables indpendamment du reste du programme. Code et
donnes troitement imbriqus
2015 2014
Les moins :
o Trop mdiatis?
o Problmes de compatibilit
Avec les premires versions
Avec certains navigateurs (les navigateurs ne sont pas crits par Sun)
o Problmes de vitesse, mais existence de solutions pour y pallier
(compilateur natif, compilation du bytecode la vole)
Orient objet
o Java ne permet d'utiliser que des objets (hors les types de base)
o Java est un langage objet de la famille des langages de classe comme C++ ou
SmallTalk
o Les grandes ides reprises sont : encapsulation, dualit classe /instance, attribut,
mthode / message, visibilit, dualit interface/implmentation, hritage simple,
redfinition de mthodes, polymorphisme
Sr
o Seul le bytecode est transmis, et vrifi par linterprteur
o Impossibilit daccder des fonctions globales ou des ressources arbitraires du
systme
Inconvnients :
o Ncessite linstallation dun interprteur pour pouvoir excuter un
programme Java
o L'interprtation du code ralentit l'excution
o Gestion gourmande de la mmoire
o Impossibilit doprations de bas niveau lies au matriel
Fichier
de Librairies
code
Programme
Compilation Code objet Edition de liens
excutable
Fichier
Byte code Machine virtuelle
de code Compilation
Java (JVM)
Java
javac MaClasse.class java
MaClasse.java
}
} Les instructions se terminent
par des ;
import java.io.*;
import java.io.*;
import java.io.*;
0x768
0x852
Herbivore Carnivore
Triangle Cercle
Int x, y; Int d,r;
dessiner(Graphics g) dessiner(Graphics g)
effacer(Graphics g) effacer(g: Graphics g)
int i = 1;
int j;
j = i;
aucun lien entre i et j.
i = 2;
Pays p2;
o Dclaration dune variable p2, on rserve
un espace mmoire pour la rfrence
p2=p1;
o La valeur de la rfrence de p1 est
recopie dans lespace mmoire
correspondant p2
o p2 et p1 rfrence le mme objet
copie de rfrences, et non pas une copie dobjets
Java EE - Ahmed Azough - FSDM 89
Exemple:
o Pays p1 = new Pays(300000, 14243);
o Pays p2;
o p2=p1;
o p2.surface = 400000; //(1)
o System.our.println(p1.surface); //(2)
Exemple 2
o Pays p1 = new Pays(400000, 14243);
o Pays p2 = new Pays();
o Pays p3=p1;
o p1=p2;
o p2=p3;
Rfrences:
o Exemple 1: La condition est
Pays p1 = new Pays(); fausse
Pays p2 = new Pays();
if (p1 == p2) ...
o Exemple 2
Pays p1 = new Pays(); La condition est
Pays p2 = p1; vraie
if (p1 == p2) ...
deep copy: Duplique lobjet ainsi que tout le graphe des objets
rfrencs par cet objet
original clone
int x = [42] Scanner object int x = [42] Scanner object
double y = [3.14] double y = [3.14]
Scanner in = [ ] Scanner in = [ ]
ArrayList object ArrayList object
List data = [ ] List data = [ ]
Clonage superficiel:
o Duplique lobjet sans dupliquer les objets auquel il rfre
o Rservation de mmoire
o Recopie des types primitives
Usage :
Point point2=point1.clone();
Java EE - Ahmed Azough - FSDM 99
Duplique lobjet ainsi que tout le graphe des objets rfrencs par cet
objet
Les attributs objets doivent tre clons
} catch(CloneNotSupportedException e) {
System.out.println("Cloning not allowed.");
return this;
}
}
o Collection
o Map : collections indexes
par des cls
Tri de cls
Ordre
dinsertion List Ordre
?
Tri de
dInsertion valeurs
Principales mthodes :
o boolean add(Object) : ajouter un lment
o boolean addAll(Collection) : ajouter plusieurs lments
o void clear() : tout supprimer
o boolean contains(Object) : test d'appartenance
o boolean containsAll(Collection) : appartenance collective
o boolean isEmpty() : test de l'absence d'lments
o Iterator iterator() : pour le parcours (cf Iterator)
o boolean remove(Object) : retrait d'un lment
o boolean removeAll(Collection) : retrait de plusieurs lments
o boolean retainAll(Collection) : garder que lintersection
o int size() : nombre d'lments
o Object[] toArray() : transformation en tableau
o Object[] toArray(Object[] a) : tableau de mme type que a
interface List
... get(int index)
... set(int index,Object o)
if (t1.equals(t3))
System.out.println("they're equal");
}
10/11/2016
} JavaEE - Ahmed Azough - FSDM 118
public class Element implements Comparable{
boolean table[];
}
return intV;
}
@Override
public int hashCode() {
return intValue();
10/11/2016 JavaEE - Ahmed Azough - FSDM 120
}
Linterface Map<K,V> correspond un groupe de couples cls-valeurs
o TreeMap<K,V>, arbre ordonn suivant les valeurs des cls avec accs
en log(n) ;
o A.equals(B) A.hashCode()=B.hashCode().
o A.hashCode()=B.hashCode() ! A.equals(B).
o hashCode() est constante dans la mme excution.
values() :
o Rcupre les valeurs sous forme de Collection<V> avec la mthode iterator() de
linterface Collection<V> pour rcuprer un un les lments
for (Iterator i = m.values().iterator(); i.hasNext(); )
System.out.println(i.next());
entrySet():
o rcupre les entres (cl-valeur) sous forme de Set<Entry<K,V>> avec la mthode
iterator() de linterface Set<Entry<K,V>> pour rcuprer une une les entres
for (Iterator i = m.keySet().iterator(); i.hasNext(); ) {
Map.Entry e = (Map.Entry) i.next();
System.out.println (e.getKey() + " ; " + e.getValue());
}
10/11/2016 JavaEE - Ahmed Azough - FSDM 126
Mthode
o public boolean contains(Object o)
o interface Collection, redfinie selon les sous-classes
Utilise lgalit entre objets
o galit dfinie par boolean equals(Object o)
o par dfaut (classe Object) :
galit de rfrences
o Personnaliser :
redfinir equals() dans chaque classe dlments
(*) quand une arraylist est cre, une capacit initiale de 10 est attribue, puis ds la capacit est
dpasse:
o une nouvelle liste est cre avec une nouvelle capacit est affecte :
nouvelleCapacit=ancienneCapacit*1.5
o tous les lments de lancienne liste sont copis dans la nouvelle
Serveur Web
(excuter servlets/JSP)
Serveur HTTP
(communiquer via Protocole HTTP)
La servlet est
o gre par le conteneur de Servlets Java EE
o implmente linterface javax.servlet.Servlet qui permet de grer les
requtes du client, diriges vers la Servlet en question.
Le serveur reoit une demande adresse une Servlet sous la
forme dune requte HTTP. Il transmet alors la requte la
Servlet concerne par le traitement puis renvoie la rponse
fournie par celle ci au client.
premiereJSP.jsp