La Red de Conocimientos Pedagógicos - Currículum vitae - ¿Cómo entender la serialización de Java? ¿Qué es la serialización? ¿Alguien puede decirme algo en común?

¿Cómo entender la serialización de Java? ¿Qué es la serialización? ¿Alguien puede decirme algo en común?

En primer lugar, el texto original de este concepto es serialización y la traducción de esta serialización no es muy buena. Personalmente, prefiero serializar esta traducción y utilizaré el término serializado a continuación.

La serialización se refiere a convertir un objeto en una cadena de cadenas binarias mediante ciertas reglas. Una cadena es un tipo de cadena binaria. Pero ¿por qué convertir el objeto en una cadena binaria? Debido a que necesitamos guardarlos o transferirlos a través de la red, los objetos en la memoria JVM no tienen forma binaria visible para el usuario. Aunque todo lo que hay en la memoria sigue siendo binario, la JVM nos protege de la información relacionada con las operaciones de la memoria y es posible que no podamos determinar cómo una implementación de la JVM almacena y organiza el contenido de un objeto Java en la memoria (C/C++ puede obtenerlo directamente como un bloque de memoria de una cadena binaria serializada).

Por supuesto, la serialización por sí sola no es suficiente, también necesitamos la deserialización, es decir, cómo volver al objeto desde la cadena binaria. De esta manera, cuando leemos un archivo o recibimos una cadena binaria de un objeto en el otro lado de la red, podemos restaurar el objeto nuevamente.

Java implementa su propia serialización de forma predeterminada, que son los datos de la memoria utilizados. Sin embargo, además de la serialización propia de Java, existen muchos métodos de serialización, como el hessian. O convertir objetos Java a json y xml también es un tipo de serialización.

Para poner un ejemplo muy sencillo, por ejemplo, tenemos un objeto entero v = 1;. Cuando lo serializamos usando arpillera, podemos obtener una cadena similar a I1 (no estoy seguro si la cadena generada por arpillera es realmente así, pero está cerca), donde quiero decir que el tipo es Entero, 1 es el valor de esta variable, e I1 es la cadena binaria serializada (una cadena).