La serialización es un proceso de convertir la información de estado de un objeto en un formulario que puede almacenarse o transmitirse. En general, un objeto se almacena en un medio de almacenamiento, como archivos o búferes de citas. Durante la transmisión de la red, puede estar en formatos como bytes o XML. Los formatos de codificación de bytes o XML pueden restaurar objetos completamente iguales. Este proceso opuesto también se llama deserialización .
Serialización y deserialización de los objetos Java <Br /> En Java, podemos crear objetos de muchas maneras, y podemos reutilizar el objeto siempre que el objeto no se recicle. Sin embargo, los objetos Java que creamos todos existen en la memoria del montón de JVM. Estos objetos solo pueden existir cuando el JVM está en estado en ejecución. Una vez que el JVM deja de funcionar, se pierde el estado de estos objetos.
Sin embargo, en escenarios de aplicación real, necesitamos persistir estos objetos y poder releer los objetos cuando sea necesario. La serialización del objeto Java puede ayudarnos a implementar esta función.
El mecanismo de serialización de los objetos es un método de persistencia de objeto incorporado en el lenguaje Java. A través de la serialización del objeto, el estado del objeto se puede guardar como una matriz de bytes, y esta matriz de bytes se puede convertir en un objeto a través de la deserialización cuando sea necesario. La serialización del objeto se puede convertir fácilmente entre objetos activos y matrices de bytes (transmisiones) en el JVM.
En Java, la serialización y la deserialización de los objetos se usan ampliamente en RMI (llamadas de método remoto) y la transmisión de red.
Las interfaces relacionadas y las clases de Java proporcionan una API conveniente para apoyarla para facilitar a los desarrolladores a serializar y deserializar objetos Java. Esto incluye las siguientes interfaces y clases:
La clase permite su funcionalidad de serialización mediante la implementación de la interfaz Java.io.Serializable. Las clases que no implementan esta interfaz no podrán serializar ni deserializar ninguno de sus estados. Todos los subtipos de una clase serializable son serializables. La interfaz de serialización no tiene métodos ni campos y solo se usa para identificar la semántica serializable. (Esta interfaz no tiene métodos y campos, entonces, ¿por qué solo se pueden serializar los objetos de la clase que implementan la interfaz?)
Al intentar serializar un objeto, si se encuentra un objeto, eso no admite la interfaz serializable. En este caso, se lanza una NotSerializableException.
Si la clase a serializada tiene una clase principal, y si desea persistir las variables definidas en la clase principal al mismo tiempo, la clase principal también debe integrar la interfaz Java.io.Serializable.
Aquí hay una clase que implementa la interfaz Java.io.Serializable
paquete com.hollischaung.serialization.SerialInseNEDEMOS; import java.io.Serializable;/*** Creado por Hollis en 16/2/17.*Implementación de la interfaz serializable*/public Class User1 implementa serializable {Nombre de cadena privada; Private Inte Age; Public String getName () {name de retorno;} Public Void setName (name de cadena) nombre;} public int getAge () {return Age;} public void setage (int a age) {this.age = age;}@overridePublic string toString () {return "user {" + "name = '" + name +'/'' + ", age =" + age + '}';}} Serialización y deserialización a través del siguiente código
paquete com.hollischaung.serialization.SerialInseDeMos; import org.apache.commons.io.fileUtils; importar org.apache.commons.io.iOutils; import java.io.*;/*** creado por hollis en el 16/17/17.*serializedemoMo1 combinado con serializable que indican que es una calificación de la serializable que es un seroializable que se implementa la serializable que se implementa la serializable. Desea ser serializado*/public class SerialInedEnseDEMO1 {public static void main (string [] args) {// inicializa el usuario ObjectUser1 user = new User1 (); user.setName ("hollis"); user.setage (23); system.printl (user); // escribir obj para archivar oos = neoS = newUtner = newUtner = newUtner = newUtn (newUtner FileOutputStream ("tempfile")); oos.writeObject (user);} catch (ioException e) {E.PrintStackTrace ();} finalmente {ioutils.closequietty (oos);} // read ois de archivo = new File ("Tempfile"); ObjectInputStream = nm; FileInputStream (file)); user1 newUser = (user1) ois.readObject (); system.out.println (newUser);} catch (ioException e) {e.printstacktrace ();} catch (classNotFoundException e) {E.PrintStackTrace ();} {FileUtils.forcedelete (file);} catch (ioException e) {E.PrintStackTrace ();}}}}}} // output: // user {name = 'hollis', edad = 23} // user {name = 'hollis', edad = 23}Lo anterior se trata de este artículo. Espero que sea útil para todos aprender la serialización y la deserialización de los objetos en Java.