Я начинаю с объектно-ориентированного программирования (ООП) и хотел бы знать: что означает сериализация на языке ООП?
java
oop
serialization
marshalling
Сообщество
источник
источник
Ответы:
Сериализация - это процесс превращения объекта в памяти в поток байтов, чтобы вы могли делать такие вещи, как сохранять его на диске или отправлять по сети.
Десериализация - обратный процесс: превращение потока байтов в объект в памяти.
источник
Marshal
иUnmarshal
являются синонимамиSerialize
иDeserialize
.abc
будет сериализована как0x61 0x62 0x63
(ASCII) или0x00 0x61 0x00 0x62 0x00 0x63
(UTF16) - с такими вещами, как терминаторы NUL или закодированные длины, или без них.Проще говоря, сериализация - это процесс преобразования объекта в поток байтов, чтобы его можно было передавать по сети или хранить в постоянном хранилище.
Десериализация - полная противоположность - извлечение потока байтов из сетевого или постоянного хранилища и преобразование его обратно в объект с тем же состоянием .
Нужно понять, как интерпретировать или манипулировать этим потоком байтов, чтобы мы получили один и тот же объект / одно и то же состояние. Для этого есть разные способы. Некоторые из них -
Serializable interface
и записав его в поток объекта.источник
JSON
с нуля, поскольку я ничего об этом не знаюПростое объяснение через изображение:
Объяснение по аналогии:
Предположим, я разговариваю со своим приятелем по телефону и рассказываю ему о моем новом щенке.
Вот моя проблема: щенок - живое, дышащее млекопитающее. Как мне передать щенка по телефонной линии? Я не могу физически положить своего щенка в телефонную трубку.
Поэтому вместо этого мне нужно будет передать изображение щенка по телефону. Другими словами, я затем сериализую свою собаку Рекс и посылаю ему сериализованную версию Рекса по телефонной линии:
{ "name":"Rex", "age":5, "favourite_food": pedigree_choice_cuts, "favourite_game": fetch_ball, "favourite_hobby": wagging_tail }
Это идеальное представление - сериализация моей собаки.
Резюме:
Сериализация в основном означает превращение моего собачьего Рекса во что-то другое - объект JSON - который затем может быть передан по телефонной линии в виде последовательности 1 и 0. Мой приятель из Нью-Йорка может затем перевести эти 1 и 0 обратно в объект JSON, чтобы у него было идеальное представление о моей собаке Рекс.
источник
Проверьте это, это даст вам хорошее объяснение:
http://en.wikipedia.org/wiki/Serialization
Я думаю, что наиболее распространенное использование термина сериализации связано с преобразованием двоичного объекта в представление XML (или другой строки), чтобы его можно было сохранить в базе данных / файле или отправить по сети при вызове веб-службы. Десериализация - это обратный процесс - преобразование XML / строки обратно в объект.
РЕДАКТИРОВАТЬ: Еще один термин, который вы можете встретить, маршалинг / демаршаллинг. Маршаллинг - это в основном та же концепция, что и сериализация, а демаршаллинг - это то же самое, что десериализация.
источник
С https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/concepts/serialization/
(акцент мой)
источник
Сериализация - это процесс преобразования неупорядоченных данных (например, объекта) в серию токенов, которые впоследствии можно использовать для восстановления исходных данных. Сериализованная форма чаще всего представляет собой строку текста, но это не обязательно.
источник
сериализация - это преобразование объекта в хранимую битовую последовательность.
так что вы можете сохранить эту последовательность в файл, БД или отправить по сети.
позже вы можете десериализовать его для реального объекта и использовать его всякий раз, когда захотите.
Веб-сервисы и AJAX являются наиболее распространенным примером сериализации. Объекты сериализуются перед отправкой ответа клиенту.
источник
Сериализация - это не что иное, как передача объекта, поддерживаемого Java, в поддерживаемую форму
преобразование формы, поддерживаемой Java, в форму, поддерживаемую сетью. Основная область сериализации - это не что иное, как передача данных с одного уровня на другой уровень ... только сериализованные объекты, которые мы можем отправить по сети.
источник
Сериализация - это процесс преобразования объекта, поддерживаемого Java, C # или любого другого (языки ООП), в переносимую форму. Таким образом, он будет транспортироваться по сети или храниться на диске. Чтобы класс был сериализуемым, он должен реализовывать сериализуемый интерфейс.
источник
Сериализация превращает данные в линейную «строку» байтов.
Другие говорили более или менее то же самое, но я подчеркиваю, что компьютерные модели требуют, чтобы данные помещались в одномерно адресуемую ОЗУ или постоянное хранилище.
Большинство вещей, которые являются «данными», по своей природе сериализуемы (даже если вы должны уменьшить абстрактную модель до линейной); не сериализуемы, скажем, сетевое соединение или сложная основанная на состоянии машина, такая как парсер.
источник
Сериализация связана с преобразованием двоичного объекта в представление XML (или другой строки), чтобы его можно было сохранить в базе данных / файле или отправить по сети при вызове веб-службы. Десериализация - это обратный процесс - преобразование XML / строки обратно в объект.
источник
При создании экземпляра (конструирования) фактического объекта (вещи) из класса (чертежа) необходимо сохранить объект (вещь), сериализовав его (разбив его на его базовую атомную структуру), в пространство в памяти. (Вроде как Star Treks Transporter). Вы разбиваете вещь на поток информации, которую можно куда-то транспортировать и хранить. Затем, когда вы хотите восстановить объект, вы просто возвращаете атомарно сохраненный экземпляр обратно в объект. Отличается от инстанции.
источник
Сериализация - это процесс преобразования объекта в поток двоичных данных, чтобы его можно было сохранить в файле или отправить по сети, где он может быть возвращен к тому же объекту.
Этот документ должен помочь вам понять сериализацию Java в деталях.
источник
Сериализация - это когда объект (кусок памяти) переводится в форму, когда состояние объекта может быть сохранено в файле (в качестве примера).
Просто относитесь к нему как к созданию куки - объект - это тесто, куки - это сериализованное тесто.
Таким образом, путем «сериализации» вы можете отправить куки своему другу.
Что-то такое :-)
источник