Подтвердить что ты не робот

В чем смысл концепции сериализации в языках программирования?

В чем смысл концепции сериализации в языках программирования?

когда мы используем атрибут Serializable над классом, в чем смысл?

4b9b3361

Ответ 1

Скажем, у вас есть два приложения, которые работают на двух разных физических машинах. Оба приложения должны обмениваться данными, которые обычно используются обоими приложениями. Эти приложения общаются друг с другом для обмена данными с некоторыми средами, эти среды могут быть файловой системой, tcp или udp-соединениями или любым другим подходящим сетевым протоколом или могут быть прямым обменом данными в памяти. Любой из этих сред будет понимать только данные, которые описываются в виде ряда бит. Поэтому, когда одному приложению нужно отправить значение 10 в другое, значение 10 будет отправлено как его двоичное представление 1010, и вы также передадите некоторую информацию, которая описывает 1010. Эта метаинформация также будет представлять собой ряд бит, которые может быть использовано другим приложением легко понять. Это было легко, но.

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

public class Book
{
    Book() { }

    public long BookId { get;set; }
    public string Author { get;set; }
    public string Title { get;set; }
}

Как вы обмениваетесь объектами книжной книги между двумя приложениями? Чтобы иметь возможность совместно использовать объект между двумя приложениями, вам нужно будет преобразовать объекты Book в двоичное представление. Здесь происходит сериализация.

С помощью сериализации вы можете определить, как объект может быть преобразован в его двоичное представление. Получающее приложение выполнит обратный процесс, то есть де-сериализацию, которая строит объект Book из его двоичного представления.

Ответ 2

Нет лучшего объяснения, чем у википедии.

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

http://en.wikipedia.org/wiki/Serialization

Кроме того, атрибут Serializable не может использоваться для методов. Указывается использование атрибута

[AttributeUsage(AttributeTargets.Class | AttributeTargets.Struct | AttributeTargets.Enum | AttributeTargets.Delegate, Inherited = false)]

Ответ 3

Сериализация - это процесс преобразования объекта в поток байтов. Дезициализация - это противоположный процесс создание объекта из потока байтов.

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

подробнее об этом: http://www.allinterview.com/showanswers/20627.html

Ответ 4

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

Ответ 5

Зачем нам нужна сериализация?

На процедурном языке, таком как Cobol или C, нет понятия сериализации. Почему мы тогда используем его в ООП? Возьмем Java. У вас есть класс, который создает несколько классов под названием "Объекты", и вы хотите передать одно из этих состояний объекта (текущие значения переменных) через сеть через Message Oriented Middleware в виде потока байтов, и вам потребуется сериализация и де-сериализация. Если несколько языков согласны с этим форматом байтового потока, сериализация может даже обеспечить способ для несовместимых в противном случае систем обмена данными.