¿Cuál es la función de la interfaz serializable?
El entorno operativo de este artículo: sistema Windows 7, computadora Dell G3.
El papel de la interfaz serializable:
La interfaz serializable es una interfaz que habilita su función de serialización. Las clases que implementan la interfaz java.io.Serializable son serializables. Las clases que no implementen esta interfaz no podrán serializar ni deserializar ninguno de sus estados.
Comprensión personal:
Esta introducción era muy poco realista, así que fui a leer algunos blogs y el blog de una señora me llamó la atención. Ella decía así. Entendido:
.El proceso de serialización es un proceso de "congelación", que congela un objeto, luego lo almacena y luego lo descongela cuando se necesita nuevamente. Puede usarse inmediatamente.
Lo que pensamos que no está serializado es en realidad el tipo de datos específico que nos ayuda a implementar la operación de serialización al declarar diferentes variables.
Si alguien abre el código fuente de la interfaz serializable, encontrará que esta interfaz es en realidad una interfaz vacía. Entonces, ¿quién implementó esta operación de serialización? De hecho, si observa las anotaciones de la interfaz, sabrá que cuando permitimos que la clase de entidad implemente la interfaz serializable, en realidad le estamos diciendo a la JVM que esta clase se puede serializar y se puede serializar mediante el mecanismo de serialización predeterminado.
El papel de la serialización:
* La serialización es el proceso de convertir el estado del objeto a un formato que pueda mantenerse o transmitirse. Lo opuesto a la serialización es la deserialización, que convierte una secuencia en un objeto. Estos dos procesos se combinan para almacenar y transferir datos fácilmente.
1. Almacene el objeto en el medio de almacenamiento para que se pueda reconstruir rápidamente una copia la próxima vez que se utilice. Es decir, cuando la serie de bits resultante se vuelve a leer de acuerdo con el formato de serialización, se puede usar para crear un clon semánticamente idéntico del objeto original.
Pregunta: No implementé la serialización cuando lo hice. se puede almacenar en mi servidor SQL o en mi base de datos MySQL u Oracle. ¿Por qué se debe serializar antes de poder almacenarlo?
2. Es conveniente para la transmisión de datos, especialmente durante llamadas remotas.
La implementación de la interfaz java.io.Serializable es para la serialización, y serialVersionUID se usa para indicar la compatibilidad entre diferentes versiones de la clase de serialización. Si modifica esta clase, modifique este valor.
De lo contrario, se producirán errores al restaurar clases previamente serializadas con versiones anteriores de la clase.
Después de la implementación, si usa una herramienta, aparecerá una advertencia y le pedirá que genere automáticamente private static final long serialVersionUID = 1L; para garantizar la compatibilidad de las versiones de clase durante la deserialización. Lo mejor es agregar el atributo serialVersionUID largo final estático privado a cada clase que se va a serializar y definir el valor específico usted mismo
Explicación de serialVersionUID
La función de serialVersionUID: para fines de serialización. Mantener la compatibilidad de la versión, es decir, la deserialización aún mantiene la unicidad del objeto cuando se actualiza la versión.
Puede escribir uno a voluntad y generará uno para usted en Eclipse. Hay dos formas de generarlo: una es el 1L predeterminado, por ejemplo:
estático privado. final long serialVersionUID = 1L Uno es generar un campo hash de 64 bits basado en el nombre de la clase, el nombre de la interfaz, el método y el atributo del miembro, etc., como:
private static final long serialVersionUID = - 8940196742313994740L