Vous êtes sur la page 1sur 25

la sérialisation en java

JVM-2
JVM-1
EL MAATAOUI Nassime

Ayougil doha

BAYACINE JAMAL
JAVA
chaimae nahhas

MOHAMED EL
FARAJI
C'est quoi la sérialisation en Java ?

Pourquoi nous avons besoin de la sérialisation ?

Avantages et inconvénients !
Contenu :
comment sérialiser un objet

C'est quoi la Désérialisation en Java ?

comment Désérialiser un objet

Pratiques de la sérialisation en Java

JAVA
C'est quoi la sérialisation en Java ?
C'est quoi la sérialisation en Java ?

Serializable Externalizable

objet
objet objet
objet

JVM-1 JVM-2
C'est quoi la sérialisation en Java ?
flux d'octets flux d'octets

objet objet

JVM-1 JVM-2
Pourquoi nous avons besoin de la sérialisation ?
• La communications

Pourquoi • la persistance
nous avons
besoin de la • La mise en cache
sérialisation ? • Synchronisation JVM croisée

JAVA
Avantages et inconvénients !
Avantages

• fonctionnalité intégrée
• familière
JAVA • la facilité
• Cryptage
Inconvénients

• Les Versions
• la portabilité du résultat
JAVA • La gestion des références
Inconvénient
s
 elle est généralement peut performante car
elle utilise l'introspection,

 certains objets ne peuvent pas être


sérialisés notamment ceux dépendants du
système d'exploitation : threads, fichiers, ...
JAVA  Son utilisation peut engendrer des
problèmes de sécurité : sérialisation de
données sensibles, désérialisation d'un
objet dont la source est inconnue, ...
comment sérialiser un objet ?
Il existe plusieurs formats de sérialisation appartenant à
deux grandes familles :
 formats binaires : c'est le format par défaut
 formats textes : ils sont plus portables car ils utilisent
généralement une structuration standard (XML, JSON,
...), peuvent être facilement modifiés et consomment
plus de ressources pour être traités
JAVA L'ajout d'un attribut à l'objet est automatiquement pris
en compte lors de la sérialisation. Attention toutefois, la
désérialisation de l'objet doit se faire avec la classe qui a
été utilisée pour la sérialisation ou une classe
compatible.
Tous les objets ne sont pas sérialisables : généralement ce
sont des objets qui ont des références sur des éléments
du système d'exploitation (threads, fichiers, ...).
Le mécanisme de sérialisation par défaut ignore les
champs static ou transient.
La sérialisation utilise un mécanisme qui ne sérialise
qu'une fois un objet même si le graphe d'objets à
sérialiser possède plusieurs références sur celui-ci. Ceci
permet lors de la désérialisation que toutes les références
JAVA sur l'objet dans le graphe pointent bien sur la bonne
instance.
java.io.Serializable

java.io.Externalizable
JAVA
Exemple
C'est quoi la Désérialisation en Java ?
Sérialisation

Désérialisation
C'est quoi la Désérialisation
en Java ?
La désérialisation est l’étape opposée à la
sérialisation c’est-à-dire que des objets sont créés
à partir d’un tableau d’octets. 

Mémoire
JAVA Base de
données
Fichier

Flux d’octets

Objet(s)
On va utilisée :

-La classe ObjectInputStream.


-La classe FileInputStream.
- la méthode readObject().

Désérial
iser
JAVA
Classe

Méthod
es
ObjectInputStream

La classe ObjectInputStream à pour but de


désérialiser un objet précédemment sérialisé

import java.io.ObjectInputStream;

Le tableau ci-dessous présente quelques


méthodes :
JAVA Méthodes Rôle
Object readObject() Désérialiser un objet
int read() Lire un octet
int available() Retourner le nombre d'octets qui peuvent
être lus dans le flux
void close() Fermer le flux
FileInputStream

Cette classe permet de construire un flux de


données à partir d'un fichier.

Pour désérialiser on crée un objet de cette


classe qui représente le fichier contenant
l'objet sérialisé, puis un objet de type
ObjectInputStream en lui passant le fichier en
paramètre.
JAVA
Example:

FileInputStream fis = new FileInputStream( "/tmp/MaClasse.ser“);


ObjectInputStream ois = new ObjectInputStream(fis);
readObject()

Cette méthode permet de récupérer une


représentation interne de l’objet sérialisé à
partir d’une suite d’octets.
Pour reconstruire l’objet, cette
méthode n’utilise pas le constructeur ;mais
initialise les champs de la classe à reconstruire
à partir des valeurs présentes dans le flux
d’octets de l’objet sérialisé.
JAVA
Exemple:

MaClasse mc = (MaClasse) ois.readObject();


Exemple

Vous aimerez peut-être aussi