Este artículo comparte la serialización y la deserialización de los objetos Java para su referencia. El contenido específico es el siguiente
1. ¿Qué es la serialización?
Convierta un objeto en una secuencia de bytes y guárdelo, como guardarlo en un archivo, y restaurar el objeto más tarde. Este mecanismo se llama serialización del objeto. (Oración adicional: guardar objetos a dispositivos de almacenamiento permanente se llama persistencia)
2. Cómo implementar la serialización <Br /> Es necesario implementar la interfaz serializable. Si un objeto Java implementa esta interfaz, significa que el objeto de esta clase es serializable.
3. Notas sobre serialización
(1) Cuando un objeto se está serializado, solo puede guardar las variables de miembros no estáticos del objeto y no puede guardar métodos y variables de miembros estáticos.
(2) El objeto A se refiere al objeto B, al objeto A se es serializado y B también se está serializado.
(3) Si un objeto serializable contiene una referencia a un objeto no justo, toda la operación de serialización fallará y se lanzará una NotSerializableException. Por lo tanto, tanto el objeto como el objeto de referencia deben implementar la interfaz serializable antes de que se pueda realizar la serialización.
(4) Si el uso de variables o referencias transitorias, miembros se marcan como transitorio, entonces el objeto aún se puede ordenar, pero no se serializará en el archivo.
4. Código
La persona de clase pública implementa serializable {Nombre de cadena privada; Age de intenciones transitorias privadas; Persona pública (nombre de cadena, int Age) {super (); this.name = name; this.age = edad; } public String toString () {return this.name + "-" + this.age; }} public class SerializableClient {public static void main (string [] args) lanza la excepción {persona p1 = nueva persona ("zhangsan", 5); Persona p2 = nueva persona ("lisi", 100); // Serializar fileOutputStream fos = new FileOutputStream ("Person.txt"); ObjectOutputStream oos = new ObjectOutputStream (FOS); oos.writeObject (P1); oos.writeObject (P2); System.out.println ("---------"); // Deserialize fileInputStream fis = new FileInputStream ("Person.txt"); ObjectInputStream OIS = new ObjectInputStream (FIS); para (int i = 0; i <2; i ++) {persona tempperson = (persona) ois.readObject (); System.out.println (Tempperson); }}}
Resultado de salida:
------------
zhangsan-0
Lisi-0
5. Serialización y deserialización de control de grano fino
Cuando implementamos los dos métodos privados anteriores en la clase de serialización o deserialización (la declaración del método debe ser completamente consistente con lo anterior), nos permite controlar el proceso de serialización y deserialización de una manera granular más subyacente y más heredada.
Lo anterior es todo el contenido de este artículo. Espero que sea útil para el aprendizaje de todos y espero que todos apoyen más a Wulin.com.