Java básico de flujo de objetos (serialización y de-serialización)

Una serialización y deserialización:
serialización: se refiere a datos de objetos de memoria del montón de Java, almacenados en alguna forma con el objeto o en un archivo de disco se transmite a otro nodo de red (transmisión en la red).
A esto le llamamos proceso se llama serialización.
deserializar: los datos del objeto en un archivo de disco o los datos de objeto en un nodo de red, para restaurar el objeto de un proceso de Java.

¿Por qué la secuencia de:
1): En un sistema distribuido, JavaBean objetos necesidad de compartir datos, tener que hacer la serialización, entonces necesitará red re-transmisión en el objeto, a continuación, los datos de objeto deben ser convertidos a forma binaria .
después de que el objeto se almacena en el HttpSession, debe implementar la interfaz de serialización (sólo implementar clases de interfaz de serialización, con el fin de hacer la serialización).
2): pasivación servicio: Si encuentra que algunas de las actividades de servicios no son un objetivo desde hace mucho tiempo, en este punto el servidor va a poner estos objetos en memoria, archivo de disco local persistente (objetos Java -> archivos binarios).
cuando el objeto si algunas actividades necesitan ahora para buscar y encontrar la memoria en el uso, no puede ser encontrado ir a un archivo de disco, tenemos que deserializar recuperación de datos de objetos en objetos Java.

Para hacer clase de objeto serializado debe implementar las interfaces seriales:. Interfaz java.io.Serializable (la bandera interfaz [No hay métodos abstractos])
subyacente determinar si el objeto actual es el ejemplo Serializable, sólo se les permite hacer una secuencia de booleana. ret = Java objetos instanceof Serializable;

La mayoría de las clases de Java se ha logrado interfaz Serializable.

En segundo lugar, el uso de la corriente de objetos para completar las operaciones de serialización y deserialización:
el uso de la corriente de objeto es la serialización hecho y deserialización:
la ObjectOutputStream :. Para realizar una secuencia de operaciones por el método writeObject
la ObjectInputStream: no deserializar por el método readObject .
Aquí Insertar imagen Descripción

此时报错:User类没有实现序列化接口,java.io.Serializable.

Qué operaciones de deserialización de código de bytes objeto debe existir objetos.
Aquí Insertar imagen Descripción
Detalles Tres serialización versión serializada:
1):? Si algunos datos no necesitan hacer la serialización, como contraseñas, en este momento cómo hacerlo
En teoría, campo estático y el campo transitoria es la secuencia de operaciones no se puede hacer.

2): versión serializada de la pregunta: ¿
debe proporcionar deserializar archivo de clase de objeto Java del objeto, la pregunta ahora es, con la escalada del proyecto, se actualizará el sistema de archivos de clase (agregar un campo / eliminar un campo), cómo garantizar la compatibilidad de los dos archivo de clase? serialVersionUID por el Java (número de versión de secuencia) para determinar si los cambios de código byte.
Si el valor indicado no se define variables de clase serialVersionUID, variables calculadas por la clase JVM de acuerdo con la información de clase, y cálculo de la clase modificada y antes menudo son diferentes.
provocando de este modo la deserialización problema objeto fracasado debido a versiones incompatibles.

Solución:. Proporcionar un serialVersionUID fijo en la clase
Aquí Insertar imagen Descripción
. Cuatro serialización y de-serialización de interfaces y clases
de Java para la comodidad de los desarrolladores proporciona una API conveniente serialización de Java objeto y de-serialización de apoyo, que incluye las siguientes interfaces y clases:
①java.io.Serializable
②java.io.Externalizable
③ObjectOutput
④ObjectInput
⑤ObjectOutputStream
⑥ObjectInputStream

Publicado 99 artículos originales · ganado elogios 2 · Vistas 2594

Supongo que te gusta

Origin blog.csdn.net/weixin_41588751/article/details/105341536
Recomendado
Clasificación