La sérialisation Java est le processus de conversion d'objets Java en flux d'octets. Lorsque des objets Java doivent être transmis sur le réseau ou stockés de manière persistante dans des fichiers, les objets Java doivent être sérialisés.
Implémentation de la sérialisation : la classe implémente l'interface Serialisable. Cette interface n'a aucune méthode à implémenter. . Implémenter l'interface Serialisable consiste à indiquer à la machine virtuelle Java que les objets de cette classe peuvent être sérialisés. (Apprentissage recommandé : cours java )
Remarque :
Une classe peut être sérialisée, et ses sous-classes peuvent également être sérialisées. comme statique et transitoire par
ne peut pas être sérialisé. Les variables membres statiques sont des attributs qui décrivent le niveau de classe et les transitoires représentent des données temporaires
L'ordre de désérialisation et de lecture des objets sérialisés doit être cohérent
Utilisation spécifique
package constxiong.interview; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; import java.io.Serializable; /** * 测试序列化,反序列化 * @author ConstXiong * @date 2019-06-17 09:31:22 */ public class TestSerializable implements Serializable { private static final long serialVersionUID = 5887391604554532906L; private int id; private String name; public TestSerializable(int id, String name) { this.id = id; this.name = name; } @Override public String toString() { return "TestSerializable [id=" + id + ", name=" + name + "]"; } @SuppressWarnings("resource") public static void main(String[] args) throws IOException, ClassNotFoundException { //序列化 ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("TestSerializable.obj")); oos.writeObject("测试序列化"); oos.writeObject(618); TestSerializable test = new TestSerializable(1, "ConstXiong"); oos.writeObject(test); //反序列化 ObjectInputStream ois = new ObjectInputStream(new FileInputStream("TestSerializable.obj")); System.out.println((String)ois.readObject()); System.out.println((Integer)ois.readObject()); System.out.println((TestSerializable)ois.readObject()); } }
Imprimer les résultats :
测试序列化 618 TestSerializable [id=1, name=ConstXiong]
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!