Допустим, у меня есть массив arr
объектов типа A
в памяти, каждый из которых имеет поле ссылки, указывающее на один и тот же объект B
.
Иллюстрация:
A_1 A_2 A_3 ... A_N
| | | |
| | V |
\--->\--> B <-----/
Обратите внимание, что поле ссылки в каждом объекте типа A
указывает на один и тот же объект типа B
.
Теперь я сериализую массив arr
, содержащий объекты типа A
, в массив ObjectOutputStream
. Затем я десериализую полученные таким образом байты.
Я получаю новый массив arr1
.
1) Есть ли в массиве arr1
объекты типа A
, все они указывают на один и тот же объект типа B
? (Я имею в виду не тот же объект до сериализации, а уникальный вновь созданный объект типа B
)
2) Другими словами, сохраняет ли вызов сериализации/десериализации в Java тот же граф объектов, что и до сериализации? (т.е. является ли вновь десериализованный граф объектов изоморфным старому)
3) Где это зафиксировано? (т.е., пожалуйста, укажите цитату)
4) Те же вопросы 1–3, но применительно к структуре сериализации Kryo для сериализации Java.
Спасибо.