Что такое сериализация объекта и десериализация?

Только быть корректным: GCC обозначает "Набор Компилятора GNU" и не компилирует двоичные файлы для Микроконтроллеров PIC.

компилятор PIC18 может быть загружен с сайт MPLAB :

К моему знанию это - Windows только и не работает с Вином. Вам, возможно, придется использовать другую компиляцию такой в качестве , ВЫСОКОТЕХНОЛОГИЧНЫЙ компилятор C для PIC10/12/16

Также видит Программировать PIC в Linux.

14
задан nbro 27 November 2018 в 14:51
поделиться

4 ответа

Сериализация = перевод соответствующего состояния объекта в потоковое представление. Это может означать преобразование его в поток байтов. Это не обязательно включает копирование каждой переменной-члена в поток. Классическим примером, который использует Джошуа Блох в Effective Java, является HashSet. Вы просто сериализуете элементы в Hashset, но не ключи.

Десериализация = восстановление объекта из последовательного представления и обеспечение инвариантов объекта. Десериализацию можно рассматривать как отдельный конструктор для объекта. В случае упомянутого выше HashSet вы должны создать новый HashSet, а затем вставить значения из потока в эту новую структуру данных.

6
ответ дан 1 December 2019 в 08:42
поделиться

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

а) проще переносить

б) проще сохранять и восстанавливать

в) поскольку всем известно, как определяется формат, любые другие программы тоже могут читать ваш объект

Так что помещаем ваш объект в база данных - это еще одна форма сериализации.

Десериализация означает,

3
ответ дан 1 December 2019 в 08:42
поделиться

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

Сериализация обычно означает запись данных в виде строки (подумайте: xml / json) или в виде необработанного двоичного файла ( byte [] и т. д.). Десериализация - это обратный процесс; получение необработанных данных (из файла, входящего сетевого сокета и т. д.) и реконструкция объектной модели.

Разница между использованием базы данных состоит в том, что она не имеет внутренней табличной структуры и реальной связи с базой данных; данные могут иметь любую форму и имеют тенденцию более точно соответствовать объектно-ориентированной компоновке, чем природе строк / столбцов таблиц.

Большинство платформ имеют ряд инструментов сериализации. Например, похоже, что вы говорите о .NET - поэтому BinaryFormatter (только для .NET), XmlSerializer , DataContractSerializer , Json.NET и protobuf -net / dotnet-protobufs все подходят.

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

Разница между использованием базы данных состоит в том, что она не имеет внутренней табличной структуры и реальной связи с базой данных; данные могут иметь любую форму и имеют тенденцию более точно соответствовать объектно-ориентированной компоновке, чем природе строк / столбцов таблиц.

Большинство платформ имеют ряд инструментов сериализации. Например, похоже, что вы говорите о .NET - поэтому BinaryFormatter (только для .NET), XmlSerializer , DataContractSerializer , Json.NET и protobuf -net / dotnet-protobufs все подходят.

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

Разница между использованием базы данных состоит в том, что она не имеет внутренней табличной структуры и реальной связи с базой данных; данные могут иметь любую форму и имеют тенденцию более точно соответствовать объектно-ориентированной компоновке, чем природе строк / столбцов таблиц.

Большинство платформ имеют ряд инструментов сериализации. Например, похоже, что вы говорите о .NET - поэтому BinaryFormatter (только для .NET), XmlSerializer , DataContractSerializer , Json.NET и protobuf -net / dotnet-protobufs все подходят.

Разница между использованием базы данных заключается в том, что она не имеет встроенной табличной структуры и реальной связи с базой данных; данные могут иметь любую форму и имеют тенденцию более точно соответствовать объектно-ориентированной компоновке, чем природе строк / столбцов таблиц.

Большинство платформ имеют ряд инструментов сериализации. Например, похоже, что вы говорите о .NET - поэтому BinaryFormatter (только для .NET), XmlSerializer , DataContractSerializer , Json.NET и protobuf -net / dotnet-protobufs все подходят.

Разница между использованием базы данных заключается в том, что она не имеет встроенной табличной структуры и реальной связи с базой данных; данные могут иметь любую форму и имеют тенденцию более точно соответствовать объектно-ориентированной компоновке, чем природе строк / столбцов таблиц.

Большинство платформ имеют ряд инструментов сериализации. Например, похоже, что вы говорите о .NET - поэтому BinaryFormatter (только для .NET), XmlSerializer , DataContractSerializer , Json.NET и protobuf -net / dotnet-protobufs подойдут.

22
ответ дан 1 December 2019 в 08:42
поделиться

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

По сути, сохранение свойств объекта в таблице является формой сериализации.

В .NET есть и другие формы:

1
ответ дан 1 December 2019 в 08:42
поделиться