Maison > Java > JavaBase > Comment implémenter la sérialisation en Java

Comment implémenter la sérialisation en Java

Libérer: 2019-12-26 11:51:09
original
5366 Les gens l'ont consulté

Comment implémenter la sérialisation en Java

1. Implémenter la sérialisation :

1) Utilisez l'interface Serialisable pour implémenter la sérialisation

Nous définissons d'abord une classe d'objets Utilisateur

public class User implements Serializable {
    //序列化ID
    private static final long serialVersionUID = 1L;
    private int age;
    private String name;
    //getter和setter方法、
    //toString方法}
Copier après la connexion

Ensuite, implémentez la sérialisation et la désérialisation dans la classe Test.

public class Test {
    public static void main(String[] args) throws Exception, IOException {
        //SerializeUser();
        DeSerializeUser();
    }
    //序列化方法
    private static void SerializeUser() throws FileNotFoundException, IOException {
        User user = new User();
        user.setName("Java的架构师技术栈");
        user.setAge(24);
        //序列化对象到文件中
        ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("G://Test/template"));
        oos.writeObject(user);
        oos.close();
        System.out.println("序列化对象成功");
    }
    //反序列化方法
    private static void DeSerializeUser() throws FileNotFoundException, IOException{
        File file = new File("G://Test/template");
        ObjectInputStream ois = new ObjectInputStream(new FileInputStream(file));
        User newUser = (User)ois.readObject();
        System.out.println("反序列化对象成功"+newUser.toString());
    }}
Copier après la connexion

2) Utilisez l'interface externalisable pour implémenter la sérialisation

Tout d'abord, définissez une classe User1

public class User1 implements Externalizable{
    private int age;
    private String name;
    //getter、setter
    //toString方法
    
    public User1() {}
    
    @Override
    public void writeExternal(ObjectOutput out) throws IOException {
    }
    @Override
    public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
    }}
Copier après la connexion

La différence entre les interfaces externalisables et sérialisables :

1) Externalisable hérite de l'interface Serialisable

2) Nous devons réécrire les méthodes writeExternal() et readExternal()

3) La classe qui implémente l'interface Externalisable doit fournir un constructeur public de paramètre Aucun.

2. Fonction :

1) La sérialisation est un mécanisme utilisé pour traiter les flux d'objets. Le soi-disant flux d'objets consiste à diffuser le contenu de l'objet, et l'objet diffusé peut être To. effectuer des opérations de lecture et d'écriture, vous pouvez également transférer des objets diffusés vers et depuis le réseau

2) Afin de résoudre les problèmes qui peuvent survenir lors des opérations de lecture et d'écriture du flux d'objets (si la sérialisation n'est pas effectuée, les données peuvent exister Problème dans le désordre)

3) En plus d'obtenir la persistance des objets, la sérialisation peut également être utilisée pour le clonage profond d'objets

3) Scénarios d'utilisation de la sérialisation

1) Enregistrez définitivement l'objet et enregistrez la séquence d'octets de l'objet dans un fichier local ou une base de données

2) Transmettez et recevez l'objet sous forme de flux d'octets via la sérialisation ; >3) Transférer des objets entre les processus via la sérialisation ;

Pour plus de connaissances sur Java, veuillez faire attention à la colonne

Tutoriel de base Java

.

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!

Étiquettes associées:
source:php.cn
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal