Qu'est-ce que la sérialisation?

je commence avec la programmation OOP et je voudrais savoir ce que signifie la sérialisation dans le jargon OOP?

95
demandé sur Aniket Thakur 2009-03-11 08:03:17

14 réponses

Sérialisation est le processus de transformation d'un objet en mémoire dans un flux d'octets, de sorte que vous pouvez faire des choses comme le stocker sur le disque ou l'envoyer sur le réseau.

la Désérialisation est le processus inverse: transformer un flux d'octets dans un objet en mémoire.

96
répondu Andrew Barnett 2009-03-11 05:06:59

simplement parler sérialisation est un processus de conversion d'un objet en flux d'octets afin qu'il puisse être transferred over a network or stored in a persistent storage .

Deserialzation est exactement le contraire - Récupère un flux d'octets à partir du réseau ou de la persistance de stockage et de les convertir à l'Objet avec le même état .

la seule chose à comprendre maintenant est comment ces flux d'octets sont interprétés ou manipulés pour que nous obtenions exactement le même Objet ou le même état. Il y a différentes façons d'y parvenir. Certains d'entre eux sont -

  1. XML : Convertissez L'objet en XML, transférez-le sur un réseau ou stockez-le dans un fichier/db. Récupérez - le et convertissez-le de nouveau à l'objet avec le même état. En Java, nous utilisons la bibliothèque JAXB (architecture Java pour la reliure XML).(Depuis java 6, il est livré avec JDK).
  2. JSON : On peut faire la même chose en convertissant L'objet en JSON (Notation objet Javascript). Encore une fois, il y a la bibliothèque GSON qui peut être utilisée pour cela.
  3. ou nous pouvons utiliser la sérialisation qui est fournie par le langage OOP lui-même. Pour eg. en Java, vous pouvez sérialiser un objet en le faisant implémenter Serializable interface et en écrivant à Object Stream.
55
répondu Aniket Thakur 2016-08-30 00:08:22

Check this out, cela vous donnera une bonne explication:

http://en.wikipedia.org/wiki/Serialization

je pense que l'utilisation la plus courante du terme serialization a à voir avec la conversion d'un objet binaire en une représentation XML (ou autre chaîne) afin qu'il puisse être stocké dans une base de données/fichier ou envoyé à travers un réseau dans un appel de service web. La desérialisation est le processus inverse-conversion D'un retour XML / string dans un objet.

EDIT: Un autre terme que vous pourriez rencontrer est marshalling/unmarshalling. Marshalling est essentiellement le même concept que serializing, et unmarshalling est la même chose que deserializing.

14
répondu Andy White 2009-03-11 05:06:01

explication via L'image:

Rex, my dog, is serialised!

explication par analogie:

supposons que je parle à mon pote au téléphone et que je lui parle de mon nouveau chiot.

Voilà mon problème: le chiot est un mammifère vivant, qui respire. Comment puis-je transmettre un chiot par téléphone? Je ne peux pas remettre mon chiot dans mon récepteur.

donc à la place, je vais devoir transmettre une représentation du chiot au téléphone. En d'autres termes, je sérialise alors mon chien Rex, et je lui envoie la version sérialisée de Rex sur la ligne téléphonique:

{ "name":"Rex", "age":5, "favourite_food": pedigree_choice_cuts, "favourite_game": fetch_ball, "favourite_hobby": wagging_tail }

c'est une représentation parfaite - une sérialisation de mon chien.

Explication Technique

la sérialisation signifie essentiellement transformer mon chien Rex en quelque chose d'autre - un JSON objet-qui peut ensuite être transporté par la ligne téléphonique comme une série de 1 et de 0. Mon pote à New York peut alors traduire ces 1 et 0 en objet JSON - pour qu'il ait une représentation parfaite de mon chien Rex. Simple!

11
répondu BKSpurgeon 2018-07-24 04:34:52

Serialization est le processus de conversion de données non ordonnées (comme un objet) en une "série 151910920 de jetons qui peuvent être utilisés plus tard pour reconstruire les données originales. La forme sérialisée est le plus souvent une chaîne de texte, mais ne doit pas l'être.

5
répondu Dave Sherohman 2010-02-26 11:12:52
La sérialisation

est la conversion d'un objet en séquence de bits stockable.

de sorte que vous pouvez enregistrer cette séquence dans un fichier, db ou envoyer sur le réseau.

plus tard, vous pouvez le desérialiser à l'objet réel et le réutiliser quand vous voulez.

Web Services et AJAX est l'exemple le plus commun de la sérialisation. Les objets sérialisés avant d'envoyer la réponse au client.

2
répondu Canavar 2009-03-11 05:10:50

sérialisation n'est rien, mais le transfert du java pris en charge objet de fichier pris en charge forme

                         (OR)

conversion java pris en charge forme de réseau forme pris en charge..la portée principale de la sérialisation n'est rien d'autre que de transférer les données d'une couche à l'autre...seuls les objets sérialisés peuvent être envoyés sur le réseau..

2
répondu sriiii 2012-11-08 10:12:15

Sérialisation est le processus de conversion d'un objet dans un flux d'octets dans l'ordre le stockage de l'objet ou de la transmettre à la mémoire, une base de données ou un fichier. Son but principal est d'enregistrer l'état d'un objet afin d'être en mesure de recréer en cas de besoin.

le processus inverse est appelé désérialisation.

ce diagramme montre le processus global de sérialisation.

This diagram shows the overall process of serialization.



grâce à la sérialisation, un développeur peut effectuer des actions comme envoyer l'objet à une application distante au moyen d'un Service Web, passer un objet d'un domaine à un autre, passer un objet à travers un pare-feu comme une chaîne JSON/XML, ou maintenir la sécurité ou l'information spécifique à l'utilisateur à travers les applications.



pour plus d'informations cochez ce .

2
répondu Chamin Wickramarathna 2018-02-01 05:47:25

Sérialisation, c'est quand un objet (une partie de la mémoire), traduit dans une forme où l'objet de l'état peut être enregistré dans le fichier (par exemple).

il suffit de le traiter comme la fabrication de cookies - objet est une pâte, cookie - est une pâte sérialisée.

ainsi, en" sérialisant " vous pouvez envoyer cookie à votre ami.

quelque chose comme ça: -)

1
répondu Mr.ElectroNick 2009-03-11 05:07:59
La sérialisation

transforme les données en une" chaîne " linéaire d'octets.

D'autres ont dit plus ou moins la même chose, mais j'insiste sur le fait que les modèles informatiques exigent que les données s'inscrivent dans la mémoire RAM unidimensionnelle ou le stockage persistant.

la plupart des choses qui sont des "données" sont intrinsèquement sérialisables (même si vous devez réduire le modèle abstrait à un modèle linéaire); pas sérialisables sont disons une connexion réseau ou une machine basée sur un État compliqué comme un analyseur.

0
répondu Overflown 2009-03-11 06:55:44

sérialisation a à voir avec la conversion d'un objet binaire dans un fichier XML (ou autre chaîne) représentation de sorte qu'il peut être stocké dans une base de données/fichier ou envoyé sur un réseau dans un appel de service web. La desérialisation est le processus inverse-convertir une chaîne de caractères XML en objet.

0
répondu viswanathan 2010-02-26 10:32:22

lors de l'instanciation (construction) de l'objet réel(la chose) d'une classe (plan), il est nécessaire de sauvegarder l'objet (la chose) en le sérialisant (en le décomposant selon sa structure atomique de base) dans un espace en mémoire. (Un peu comme Star Treks Transporter). Vous divisez la chose en flux d'informations qui peuvent être transportées quelque part et stockées. Puis, quand vous voulez reconstruire la chose, vous tirez simplement atomiquement stockées instance de l'objet. Différent from instaniation.

0
répondu David K Hill 2013-12-24 10:35:06

la sérialisation est le processus de conversion d'un objet en flux de données binaires afin qu'il puisse être stocké dans un fichier ou envoyé à travers un réseau où il peut être ressuscité vers le même objet.

ce document devrait vous aider à comprendre en détail la sérialisation Java.

0
répondu Nikhil Katre 2016-07-29 02:26:44
La sérialisation

est le processus de conversion D'un objet Java,C# ou tout autre (langues OOP) supporté en une forme transportable. De cette manière, il sera transporté sur le réseau ou stocké sur un disque. Pour qu'une classe soit serialuzable, elle doit implémenter l'interface serialisable.

0
répondu Nesan Mano 2018-04-05 14:12:00