¿Qué es la serialización?

Estoy comenzando con la progtwigción OOP y me gustaría saber cuál es el significado de la serialización en el lenguaje OOP.

La serialización es el proceso de convertir un objeto en la memoria en una secuencia de bytes para que pueda hacer cosas como almacenarlo en el disco o enviarlo a través de la red.

La deserialización es el proceso inverso: convertir una secuencia de bytes en un objeto en la memoria.

Simplemente hablando Serialización es un proceso de convertir un Objeto en una secuencia de bytes para que pueda ser transferred over a network or stored in a persistent storage .

La deserialización es exactamente lo contrario: obtenga un flujo de bytes de la red o almacenamiento de persistencia y conviértalo nuevamente al Objeto con el mismo estado .

Lo único que debemos entender ahora es cómo se interpretan o manipulan esos flujos de bytes para que obtengamos exactamente el mismo objeto / mismo estado. Hay varias formas de lograr eso. Algunos de ellos son –

  1. XML : convierta Object a XML, transfiéralo a una red o almacénelo en un archivo / db. Recuperarlo y convertirlo nuevamente al objeto con el mismo estado. En Java utilizamos la biblioteca JAXB (architecture Java para enlace XML). (Desde Java 6 viene incluida con JDK).
  2. JSON : Lo mismo se puede hacer convirtiendo el objeto a JSON (notación de JavaScript Object). Nuevamente, hay una biblioteca GSON que se puede usar para esto.
  3. O podemos usar la serialización proporcionada por el lenguaje OOP. Por ej. en Java puede serializar un Objeto haciendo que implemente la Serializable interface y escribiendo en Object Stream.

Mira esto, esto te dará una buena explicación:

http://en.wikipedia.org/wiki/Serialization

Creo que el uso más común del término serialización tiene que ver con convertir un objeto binario en una representación XML (u otra cadena) para que pueda almacenarse en una base de datos / archivo o enviarse a través de una red en una llamada de servicio web. La deserialización es el proceso inverso: convertir un XML / cadena en un objeto.

EDITAR: Otro término que puede encontrar es ordenar / desmarcar. Marshalling es básicamente el mismo concepto que la serialización, y unmarshalling es lo mismo que deserializing.

Explicación vía foto:

¡Rex, mi perro, está serializado!

Explicación por analogía:

Supongamos que estoy hablando con mi amigo por teléfono y le estoy contando sobre mi nuevo cachorro.

Aquí está mi problema: el cachorro es un mamífero vivo y respirador. ¿Cómo debo transportar un cachorro por la línea telefónica? No puedo poner físicamente a mi cachorro en mi receptor.

Entonces, en su lugar, tendré que transmitir una representación del cachorro por teléfono. En otras palabras, luego serializo a mi perro Rex, y le envío la versión serializada de Rex a través de la línea telefónica:

{ "name":"Rex", "age":5, "favourite_food": pedigree_choice_cuts, "favourite_game": fetch_ball, "favourite_hobby": wagging_tail }

Es una representación perfecta, una serialización de mi perro.

Explicación técnica

La serialización básicamente significa transformar mi perro Rex en otra cosa, un objeto JSON, que luego puede transportarse a través de la línea telefónica como una serie de 1s y 0s. Mi amigo en NYC puede traducir esos 1 y 0 en un objeto JSON, para que tenga una representación perfecta de mi perro Rex. ¡Sencillo!

La serialización es el proceso de conversión de datos desordenados (como un objeto) en una serie de tokens que pueden usarse posteriormente para reconstruir los datos originales. La forma serializada suele ser una cadena de texto, pero no tiene que ser así.

la serialización está convirtiendo un objeto en una secuencia de bit almacenable.

para que pueda guardar esta secuencia en un archivo, db o enviar a través de la red.

más tarde puede deserializarlo al objeto real y reutilizarlo cuando lo desee.

Los servicios web y AJAX son el ejemplo más común de serialización. Los objetos se serializaron antes de enviar la respuesta al cliente.

la serialización no es más que la transferencia del objeto compatible con Java a la forma compatible con archivos

  (OR) 

la conversión de la forma soportada de Java a la forma admitida por la red … el scope principal de la serialización no es otra cosa que la transferencia de datos de una capa a la otra … solo objetos serializados que podemos enviar a través de la red.

Serialización es el proceso de convertir un objeto en una secuencia de bytes para almacenar el objeto o transmitirlo a la memoria, una base de datos o un archivo. Su objective principal es guardar el estado de un objeto para poder recrearlo cuando sea necesario.
El proceso inverso se llama deserialización.

Este diagtwig muestra el proceso general de serialización.

Este diagrama muestra el proceso general de serialización.

A través de la serialización, un desarrollador puede realizar acciones como enviar el objeto a una aplicación remota por medio de un servicio web, pasar un objeto de un dominio a otro, pasar un objeto a través de un cortafuegos como cadena JSON / XML o mantener la seguridad o el usuario -información específica en todas las aplicaciones.

Para más información revisa esto .

La serialización se produce cuando el objeto (un fragmento de memoria) se traduce en un formulario cuando el estado del objeto se puede guardar en un archivo (como un ejemplo).

Solo trátenlo como hacer cookies – el objeto es una masa, una galleta – es una masa serializada.

Entonces, al “serializar” puede enviar cookies a su amigo.

Algo como eso 🙂

La serialización está convirtiendo los datos en una “cadena” de bytes lineal.

Otros han dicho más o menos lo mismo, pero enfatizo que los modelos de computadora requieren que los datos encajen en la memoria RAM con dirección unidimensional o en el almacenamiento persistente.

La mayoría de las cosas que son “datos” son inherentemente serializables (incluso si debe reducir el modelo abstracto a uno lineal); no serializable es decir una conexión de red o una máquina complicada basada en estado como un analizador.

la serialización tiene que ver con la conversión de un objeto binario en una representación XML (u otra cadena) para que pueda almacenarse en una base de datos / archivo o enviarse a través de una red en una llamada al servicio web. La deserialización es el proceso inverso: convertir un XML / cadena en un objeto.

Al instanciar (construir) el objeto real (la cosa) de una clase (modelo), hay una necesidad de guardar el objeto (cosa) serializándolo (descomponiéndolo en su estructura atómica básica) a un espacio en la memoria. (Algo así como Star Treks Transporter). Usted divide la cosa en una stream de información que puede ser transportada a algún lugar y almacenada. Luego, cuando quiera reconstruir lo que acaba de hacer, vuelva a colocar la instancia almacenada atómicamente en el objeto. Diferente de la instancia

La serialización es el proceso de convertir un objeto en una secuencia de datos binarios para que pueda almacenarse en un archivo o enviarse a través de una red donde puede resucitar al mismo objeto.

Este documento debería ayudarlo a comprender la serialización de Java en detalle.

La serialización es el proceso de convertir un objeto compatible con Java, C # o cualquier otro (idiomas OOP) a un formato transportable. De esta forma se transporta a través de la red o se almacena en un disco. Para que una clase sea serializable, debe implementar una interfaz serializable.