Digamos que tengo una matriz arr
de objetos del tipo A
en la memoria, cada uno de los cuales tiene un campo de referencia apuntando al mismo objeto B
.serialización de Java, Kryo y el gráfico de objetos
Ilustración:
A_1 A_2 A_3 ... A_N
| | | |
| | V |
\--->\--> B <-----/
Tenga en cuenta que el campo de referencia en todos los objetos de tipo A
puntos a la misma objeto de tipo B
.
Ahora, serializo la matriz arr
que contiene objetos del tipo A
en un ObjectOutputStream
. Luego deserializo los bytes obtenidos de esta manera.
Obtengo una nueva matriz arr1
.
1) ¿El array arr1
tiene objetos de tipo A
de tal manera que todos ellos apuntan a la misma objeto de tipo B
? (No me refiero al mismo objeto antes de la serialización, sino a un objeto creado recientemente único del tipo B
)
2) En otras palabras, ¿las llamadas serialize/deserialize en Java retienen el mismo gráfico objeto que antes de la serialización? (es decir, el gráfico del objeto recientemente deserializado es isomorfo al anterior)
3) ¿Dónde está esto documentado? (es decir, proporcione una cita)
4) Las mismas preguntas 1-3, pero aplicadas al marco de serialización Kryo para Java.
Gracias.
A través de la misma 'ObjectOutputStream', o adicionalmente a través de la misma invocación del método' writeObject'? – axel22
Solo a través de la misma transmisión; pensar en dos objetos haciendo referencia el uno al otro. Usted escribe el primero (y por lo tanto la referencia al segundo) en la secuencia. Cuando luego escribe el segundo en el mismo flujo, que tiene ID para ambos, las referencias se comparten. –
¡Gracias por la gran respuesta! – axel22