6.3 Serialización
Java facilita el almacenamiento y transmisión del estado de un objeto mediante un mecanismo conocido con el nombre de serialización.
La serialización de un objeto consiste en generar una secuencia de bytes lista para su almacenamiento o transmisión. Después, mediante la deserialización, el estado original del objeto se puede reconstruir.
Para que un objeto sea serializable, ha de implementar la interfaz java.io.Serializable (que lo único que hace es marcar el objeto como serializable, sin que tengamos que implementar ningún método).
-
Para que un objeto sea serializable, todas sus variables de instancia han de ser serializables.
-
Todos los tipos primitivos en Java son serializables por defecto (igual que los arrays y otros muchos tipos estándar).
-
Cuando queremos evitar que cualquier campo persista en un archivo, lo marcamos como transitorio (
transient). No podemos marcar ningún método transitorio, solo campos. - Para leer o escribir de/en un fichero binario que incluye información seriarizable se utilizará los streams ObjectInpuStream y ObjectOutputStream con los métodos
readObject()ywriteObject(ClaseSerializada obj)respectivamente.
El fichero con los objetos serializados almacena los datos en un formato propio de Java, por lo que no se puede leer fácilmente con un simple editor de texto (ni editar).
Ejemplo: serialización
Persona implementa Serializable significa que p1 y todos los objetos referenciados por él (como p2, p3, p4) serán serializados en cadena.