Table des matières
1 Sérialisation" >1 Sérialisation
1. Qu'est-ce que la sérialisation ? " >1. Qu'est-ce que la sérialisation ?
2. Le rôle de la sérialisation " > 2. Le rôle de la sérialisation
3. Conditions de sérialisation " > 3. Conditions de sérialisation
5. Champs qui ne peuvent pas être sérialisés : " > 5. Champs qui ne peuvent pas être sérialisés :
6. Opération de sérialisation : " >6. Opération de sérialisation :
2 Désérialisation" > 2 Désérialisation
1. Qu'est-ce que la désérialisation" >1. Qu'est-ce que la désérialisation
2. Exigences de l'opération de désérialisation " >2. Exigences de l'opération de désérialisation
3. Numéro de version de sérialisation " > 3. Numéro de version de sérialisation
⑷Processus d'analyse" >⑷Processus d'analyse
⑸Opération de séquence inverse : " > ⑸Opération de séquence inverse :
Maison Java javaDidacticiel Qu'est-ce que la sérialisation ? Une introduction détaillée à la sérialisation

Qu'est-ce que la sérialisation ? Une introduction détaillée à la sérialisation

Jun 20, 2017 pm 02:25 PM
序列化

1 Sérialisation

1. Qu'est-ce que la sérialisation ?

L'écriture d'objets en mémoire sur le disque dur est une sérialisation, qui n'est pas différente de la sortie générale, sauf que les données de sortie sont un objet, pas un texte ordinaire.

2. Le rôle de la sérialisation

Parce que le stockage des données en mémoire est temporaire, si vous devez sauvegarder l'objet pendant une longue période temps, vous devez L'écriture sur le disque dur entraîne la sérialisation.

3. Conditions de sérialisation

Pour qu'un objet soit sérialisé, la classe à laquelle appartient l'objet doit implémenter l'interface Serialisable. est une interface emblématique sans aucun champ ni méthodes abstraites Lorsque la JVM rencontre cette interface, elle attribuera un numéro de version sérialisé à la classe.

4. Un objet est sérialisé et les variables globales de l'objet, y compris les variables de type privé, seront écrites sur le disque dur.

5. Champs qui ne peuvent pas être sérialisés :

  1. Les champs statiques ne peuvent pas être sérialisés, la valeur d'une variable statique Il s'agit de la valeur dans la JVM actuelle, et non de la valeur définie lors de la sérialisation.

  2. Les champs modifiés par transitoire ne peuvent pas être sérialisés.

6. Opération de sérialisation :

OutputStream ops=new FileOuptStream(path);
ObjectOuptStream oos=new ObjectOutputStream(ops);
Object obj=new Ojbect();
oos.writeObject(obj);
Copier après la connexion

2 Désérialisation

1. Qu'est-ce que la désérialisation

La désérialisation consiste à écrire les données du disque dur dans la mémoire et à obtenir des objets enregistrés dans des fichiers. .

2. Exigences de l'opération de désérialisation

L'ordre de désérialisation doit être cohérent avec l'ordre de sérialisation.

3. Numéro de version de sérialisation

⑴ Lors de la sérialisation, un numéro long est généré, appelé numéro de version de sérialisation, et est enregistré au en même temps Dans les fichiers sérialisés et les fichiers de classe, comparez les deux numéros lors de la désérialisation. S'ils sont identiques, la sérialisation est réussie ; s'ils ne sont pas identiques, la désérialisation ne peut pas être effectuée.

⑵ Le numéro de version sérialisé est utilisé pour marquer la version de la classe d'entité une fois la classe d'entité modifiée, si le numéro de version sérialisé n'est pas explicitement spécifié. , le système générera automatiquement un nouveau numéro de version. Si les deux numéros de version sont différents, ils ne peuvent pas être sérialisés. Généralement, le numéro de version de sérialisation est explicitement défini dans la classe d'entité qui doit être sérialisée.

⑶ Ne pas recompiler ne générera pas nécessairement un nouveau numéro de version sérialisé. Ce n'est que lorsque la classe d'entité change qu'un nouveau numéro de version sérialisé sera généré.

⑷Processus d'analyse

Lors de la désérialisation, comparez d'abord si le numéro de version sérialisé dans le fichier sérialisé et le fichier de classe sont identiques. sont les mêmes, indiquant que le fichier sérialisé est généré par le fichier de classe actuel et peut être désérialisé ; ce n'est pas la même chose, indiquant qu'il n'est pas généré par le fichier de classe actuel, la version est incohérente et ne peut pas être désérialisée ; être désérialisé.

⑸Opération de séquence inverse :

InputStream is=new FileInputStream(path);
ObjectInputStream ois=new ObjectIputStream(is);
Object obj=ois.readObject();
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
Will R.E.P.O. Vous avez un jeu croisé?
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

En Java, comment sérialiser une liste d'objets en utilisant flexjson ? En Java, comment sérialiser une liste d'objets en utilisant flexjson ? Sep 05, 2023 pm 11:09 PM

Flexjson est une bibliothèque légère permettant de sérialiser et de désérialiser des objets Java vers et depuis le format JSON. Nous pouvons sérialiser une liste d'objets en utilisant la méthode serialize() de la classe JSONSerializer. Cette méthode effectue une sérialisation superficielle sur l'instance cible. Nous devons passer une liste d'objets de type liste en paramètre à la méthode serialize(). Exemple de syntaxe publicStringserialize(Objecttarget) importflexjson.JSONSerializer;importjava.util.*;publicclassJsonSerial

Comment la sérialisation Java affecte-t-elle les performances ? Comment la sérialisation Java affecte-t-elle les performances ? Apr 16, 2024 pm 06:36 PM

L'impact de la sérialisation sur les performances Java : le processus de sérialisation repose sur la réflexion, ce qui affectera considérablement les performances. La sérialisation nécessite la création d'un flux d'octets pour stocker les données d'objet, ce qui entraîne des coûts d'allocation de mémoire et de traitement. La sérialisation d'objets volumineux consomme beaucoup de mémoire et de temps. Les objets sérialisés augmentent la charge lorsqu'ils sont transmis sur le réseau.

Compétences en traitement de données PHP : comment utiliser les fonctions de sérialisation et de désérialisation pour implémenter la sérialisation et la désérialisation des données Compétences en traitement de données PHP : comment utiliser les fonctions de sérialisation et de désérialisation pour implémenter la sérialisation et la désérialisation des données Jul 29, 2023 am 10:49 AM

Compétences en traitement de données PHP : Comment utiliser les fonctions de sérialisation et de désérialisation pour implémenter la sérialisation et la désérialisation des données. La sérialisation et la désérialisation sont l'une des compétences de traitement de données couramment utilisées en informatique. En PHP, nous pouvons utiliser les fonctions serialize() et unserialize() pour implémenter des opérations de sérialisation et de désérialisation de données. Cet article vous donnera une introduction détaillée sur la façon d'utiliser ces deux fonctions et fournira des exemples de code pertinents. 1. Qu'est-ce que la sérialisation et la désérialisation dans la programmation informatique ?

Comment la bibliothèque de fonctions C++ effectue-t-elle la sérialisation et la désérialisation ? Comment la bibliothèque de fonctions C++ effectue-t-elle la sérialisation et la désérialisation ? Apr 18, 2024 am 10:06 AM

Guide de sérialisation et de désérialisation de la bibliothèque C++ Sérialisation : création d'un flux de sortie et conversion au format d'archive. Sérialisez les objets dans l'archive. Désérialisation : crée un flux d'entrée et le restaure à partir du format d'archive. Désérialisez les objets de l'archive. Exemple pratique : Sérialisation : Création d'un flux de sortie. Créez un objet d'archive. Créez et sérialisez des objets dans l'archive. Désérialisation : créez un flux d'entrée. Créez un objet d'archive. Créez des objets et désérialisez-les à partir de l'archive.

Comment sérialiser l'ordre des propriétés à l'aide de la bibliothèque Jackson en Java ? Comment sérialiser l'ordre des propriétés à l'aide de la bibliothèque Jackson en Java ? Aug 28, 2023 pm 12:45 PM

@JsonPropertyOrder est une annotation utilisée au niveau de la classe. Il prend comme attribut une liste de champs qui définit l'ordre dans lequel les champs apparaissent dans la chaîne générée par la sérialisation JSON de l'objet. Les propriétés incluses dans la déclaration d'annotation peuvent être sérialisées en premier (dans l'ordre dans lequel elles sont définies), suivies de toutes les propriétés non incluses dans la définition. Syntaxe public@interfaceJsonPropertyOrder Exemple importcom.fasterxml.jackson.core.*;importcom.fasterxml.jackson.databind.*;importcom.fasterxml.jac

Sérialisation et désérialisation d'interfaces et de classes abstraites en Java Sérialisation et désérialisation d'interfaces et de classes abstraites en Java May 02, 2024 am 08:33 AM

Les interfaces ne peuvent pas être sérialisées directement. Les classes abstraites peuvent être sérialisées, mais seulement si elles ne contiennent pas de champs non statiques et non transitoires ou si elles ne remplacent pas les méthodes writeObject() et readObject(). Des instances spécifiques peuvent être implémentées via des classes concrètes qui implémentent l'interface. ou remplacez writeObject() et readObject, implémentation de la classe abstraite de la méthode ().

Sérialisation et désérialisation des types de fonctions Golang Sérialisation et désérialisation des types de fonctions Golang Apr 29, 2024 am 08:15 AM

Les types de fonctions GoLang peuvent être sérialisés et désérialisés via le package encoding/gob. Sérialisation : enregistrez un type personnalisé et utilisez gob.NewEncoder pour coder le type de fonction dans un tableau d'octets. Désérialisation : utilisez gob.NewDecoder pour désérialiser les types de fonctions des tableaux d'octets.

Comment sérialiser une carte à l'aide de la bibliothèque flexjson en Java ? Comment sérialiser une carte à l'aide de la bibliothèque flexjson en Java ? Aug 26, 2023 pm 08:13 PM

Flexjson est une bibliothèque légère permettant de sérialiser et de désérialiser des objets Java vers et depuis le format JSON. Nous pouvons également sérialiser une Map en utilisant la méthode serialize() de la classe JSONSerializer, qui effectue une sérialisation superficielle sur l'instance cible. Exemple de syntaxe publicStringserialize(Objecttarget) importflexjson.JSONSerializer;importjava.util.*;publicclassJsonSerializeMapTest{ publ

See all articles