Что “сериализированным” является объект в программировании?

Я видел термин "сериализированный" на всем протяжении, но никогда не объяснял. Объясните, что это означает.

39
задан sth 2 February 2010 в 09:48
поделиться

5 ответов

Сериализация обычно относится к процессу преобразования абстрактного типа данных в поток байт (иногда сериализация выполняется в текстовый, XML или CSV или другие форматы). Важно то, что это простой формат, который может быть прочитан/записан без понимания абстрактных объектов, которые представляют данные). При сохранении данных в файл или передаче по сети, вы не можете просто хранить объект MyClass, вы можете хранить только байты. Поэтому вам нужно взять все данные, необходимые для восстановления вашего объекта, и превратить их в последовательность байтов, которую можно записать на целевое устройство, а в какой-то момент прочитать обратно и дезериализовать, восстанавливая ваш объект.

54
ответ дан 27 November 2019 в 02:30
поделиться

Сериализация - это процесс взятия экземпляра объекта и его преобразования в формат, в котором он может быть передан по сети или сохранен в хранилище (например, в файл или базу данных). Сериализованный формат содержит информацию о состоянии объекта.

Десериализация - это процесс использования сериализованного состояния для восстановления объекта из сериализованного состояния в его первоначальное состояние.

12
ответ дан 27 November 2019 в 02:30
поделиться

настоящее простое объяснение, сериализация - это акт взятия чего-то, что находится в памяти, как экземпляр класса (объекта) и превращение в структуру, подходящую для транспортировки или хранения.

Обычным примером является сериализация XML для использования в веб-службах - у меня есть экземпляр класса на сервере и мне нужно отправить его вам по сети, я сначала сериализую его в xml, что означает создание xml версии этих данных в классе, один раз в xml я могу использовать транспорт вроде HTTP, чтобы легко его отправить.

Существует несколько форм сериализации, таких как XML или JSON.

5
ответ дан 27 November 2019 в 02:30
поделиться

То, что они сказали. Слово "serial" относится к тому, что байты данных должны быть помещены в какой-то стандартизированный порядок для записи на последовательное запоминающее устройство, например, в выходной поток файла или последовательную шину. На практике необработанных байтов редко бывает достаточно. Например, адрес памяти из программы, которая сериализует структуру данных, может быть недействительным в программе, которая восстанавливает объект из сохраненных данных. Поэтому необходим протокол. За эти годы было много, много стандартов и реализаций. Помню один из них с середины 80-х назывался XDR, но он был не первым.

2
ответ дан 27 November 2019 в 02:30
поделиться

Есть (по крайней мере) два совершенно разных значения для сериализации. Одно из них - это превращение структуры данных в памяти в поток битов, чтобы ее можно было записать на диск и воссоздать позже, или передать по сетевому соединению и использовать на другой машине, и т.д.

Другое значение относится к последовательному и параллельному выполнению - т.е. обеспечению того, чтобы только один поток выполнения делал что-то за раз. Например, если вы собираетесь читать, изменять и записывать переменную, вы должны убедиться, что один поток завершает последовательность чтения, изменения, записи до того, как другой может ее запустить.

5
ответ дан 27 November 2019 в 02:30
поделиться
Другие вопросы по тегам:

Похожие вопросы: