Я починаю з об'єктно-орієнтованого програмування (ООП) і хотів би знати: у чому сенс серіалізації в мові OOP?
Я починаю з об'єктно-орієнтованого програмування (ООП) і хотів би знати: у чому сенс серіалізації в мові OOP?
Відповіді:
Серіалізація - це процес перетворення об’єкта в пам'яті в потік байтів, щоб ви могли робити такі речі, як збереження його на диску або відправлення по мережі.
Десеріалізація - це зворотний процес: перетворення потоку байтів в об'єкт в пам'яті.
Marshal
і Unmarshal
є синонімом до Serialize
і Deserialize
.
abc
буде серіалізований як 0x61 0x62 0x63
(ASCII) або 0x00 0x61 0x00 0x62 0x00 0x63
(UTF16) - з або без речей, таких як термінали NUL або кодовані довжини.
Простіше кажучи, серіалізація - це процес перетворення Об'єкта в потік байтів, щоб він міг переноситися по мережі або зберігатись у постійному сховищі.
Десеріалізація є прямо протилежною - Витягніть потік байтів з мережевого або постійного сховища та перетворіть його назад в Об'єкт з тим же станом .
Слід розуміти, як інтерпретується або маніпулюється цей потік байтів, щоб ми отримали такий самий Об'єкт / той самий стан. Існують різні способи досягти цього. Деякі з них -
Serializable interface
і записувати в Object Stream.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/Серіялізація
Я думаю, що найбільш поширене використання терміна серіалізація пов'язане з перетворенням бінарного об'єкта в представлення XML (або іншого рядка), щоб він міг зберігатися в базі даних / файлах або надсилатися через мережу під час виклику веб-служби. Десеріалізація - це зворотний процес - перетворення XML / рядка назад в об'єкт.
РЕДАКТУВАННЯ: Ще один термін, який ви можете зіткнутися, - це марширування / зняття з продажу. Маршаллінг - це в основному те саме поняття, що і серіалізація, а демарширування - те саме, що і десеріалізація.
Серіалізація - це процес перетворення об’єкта в потік байтів для зберігання об'єкта або передачі його в пам'ять, базу даних або файл. Основна його мета - збереження стану об’єкта, щоб мати можливість його відтворити при необхідності. Зворотний процес називається десеріалізацією.
...
Ця ілюстрація показує загальний процес серіалізації
...
За допомогою серіалізації розробник може виконувати такі дії, як надсилання об’єкта у віддалений додаток за допомогою веб-сервісу, передача об'єкта з одного домену в інший, передача об'єкта через брандмауер у вигляді рядка XML або підтримка безпеки або специфіки для користувача інформація в додатках
Від https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/concepts/serialization/
(наголос мій)
Серіалізація - це процес перетворення не упорядкованих даних (таких як об'єкт) у ряд лексем, які згодом можуть бути використані для реконструкції вихідних даних. Серіалізована форма - це найчастіше рядок тексту, але це не повинно бути.
серіалізація - це перетворення об'єкта в послідовність бітів, що зберігаються.
тож ви можете зберегти цю послідовність у файл, db або надіслати по мережі.
пізніше ви можете дезаріалізувати його до фактичного об'єкта та використовувати його знову, коли захочете.
Веб-сервіси та AJAX - найпоширеніший приклад серіалізації. Об'єкти серіалізуються перед відправленням відповіді клієнту.
серіалізація - це не що інше, як передача підтримуваного Java об'єкта у формат, що підтримується файлом
(OR)
перетворення форми, що підтримується Java, у підтримувану мережу форму. Основна сфера серіалізації - це не що інше, як передача даних з одного шару на інший ... лише серіалізовані об'єкти, які ми можемо надсилати по мережі.
Серіалізація - це процес перетворення об’єкта, що підтримується Java, C # або будь-якого іншого (мови OOP), в об'єкт, що переноситься. Таким чином його транспортують по мережі або зберігають на диску. Щоб клас можна було серіалізувати, він повинен реалізувати серіалізаційний інтерфейс.
Серіалізація - це перетворення даних у лінійну "рядок" байтів.
Інші сказали більш-менш те саме, але наголошую, що комп'ютерні моделі вимагають, щоб дані вміщувались в одновимірній оперативній пам’яті або постійному сховищі.
Більшість речей, які є "даними", за своєю суттю є серіалізаційними (навіть якщо потрібно звести абстрактну модель до лінійної); не серіалізаційні - це, наприклад, мережеве з'єднання або складна машина на основі штату, як аналізатор.
серіалізація пов'язана з перетворенням бінарного об'єкта в представлення XML (або іншого рядка), щоб він міг зберігатися в базі даних / файлах або надсилатися по мережі під час виклику веб-служби. Десеріалізація - це зворотний процес - перетворення XML / рядка назад в об'єкт.
При інстанціюванні (конструюванні) фактичного об'єкта (речі) з класу (креслення) виникає необхідність збереження об'єкта (речі) шляхом його серіалізації (розбиття на основну структуру атома) до простору в пам'яті. (На кшталт транспортера Star Treks). Ви розбиваєте річ у ній на потоці інформації, яку можна перенести кудись і зберігати. Тоді, коли ви хочете реконструювати річ, ви просто потягнете атомно збережений екземпляр назад в об’єкт. Відмінні від інсталяції.
Серіалізація - це процес перетворення об'єкта у потік даних бінарних даних, щоб він міг зберігатися у файлі або надсилатись через мережу, де його можна відновити назад до того ж об’єкта.
Цей документ повинен допомогти вам детальніше зрозуміти серіалізацію Java.
Серіалізація - це коли об'єкт (шматок пам'яті) перекладається у форму, коли стан об'єкта може бути збережений у файлі (як приклад).
Просто трактуйте це як приготування печива - предмет - це тісто, печиво - це серіалізоване тісто.
Отже, "серіалізуючи", ви можете надсилати файли cookie своєму другові.
Щось схоже :-)