четверг, 4 ноября 2010 г.

Java I/O ObjectStreams

Это очень прикольные потоки, они наследники от DataStreams? поэтому они могут писать/читать микс -- и простые типы и обьекты.

Когда мы пишем сложный обьект, нужно понимать, что он имеет ссылки на другие обьекты, а эти обьекты имеют ссылки на третьи. Эти стримы умеют обходить всю паутину по ссылкам и сохранять все обьекты, при попытки сохранить один из паутины:

Но теперь начинается еще более интересное... А если мы попытаемся сохранить в наш поток обьект, который был уже сохранен в паутине другого? Стрим повторно не сохранит этот обьект, он сохранит ссылку на него. 
Даже если мы явно попытаемся дважды сохранить один обьект в один поток, то сохраниться он только один раз, второй раз будет сохраняться ссылка. Если мы по плану хотим наделать дубликатов обьекта, чтобы потом их считать, и иметь несколько отдельных обьектов, а не ссылок на один, мы должны использовать разные потоки для сохранения этого обьекта... Вот так:)

Комментариев нет:

Отправить комментарий