Rozpoczynam pracę z programowaniem obiektowym (OOP) i chciałbym wiedzieć: jakie jest znaczenie serializacji w języku OOP?
java
oop
serialization
marshalling
Społeczność
źródło
źródło
Odpowiedzi:
Serializacja to proces przekształcania obiektu w pamięci w strumień bajtów, dzięki czemu można robić takie rzeczy, jak przechowywanie go na dysku lub wysyłanie przez sieć.
Deserializacja to proces odwrotny: zamiana strumienia bajtów na obiekt w pamięci.
źródło
Marshal
iUnmarshal
są synonimamiSerialize
iDeserialize
.abc
byłby serializowany jako0x61 0x62 0x63
(ASCII) lub0x00 0x61 0x00 0x62 0x00 0x63
(UTF16) - z takimi elementami, jak terminatory NUL lub zakodowane długości, lub bez takich elementów.Mówiąc najprościej, serializacja to proces konwertowania obiektu na strumień bajtów, aby można go było przesłać przez sieć lub przechowywać w trwałym magazynie.
Deserializacja jest dokładnie odwrotna - pobierz strumień bajtów z sieci lub pamięci trwałej i przekonwertuj go z powrotem na obiekt o tym samym stanie .
Należy zrozumieć, w jaki sposób te strumienie bajtów są interpretowane lub manipulowane, aby uzyskać dokładnie ten sam obiekt / ten sam stan. Można to osiągnąć na różne sposoby. Niektórzy z nich są -
Serializable interface
i zapisywany w strumieniu obiektów.źródło
JSON
od zera, ponieważ nic o tym nie wiemProste wyjaśnienie za pomocą obrazu:
Wyjaśnienie przez analogię:
Załóżmy, że rozmawiam z kumplem przez telefon i opowiadam mu o moim nowym szczeniaku.
Oto mój problem: szczeniak jest żywym, oddychającym ssakiem. Jak mam przekazać szczeniaka przez telefon? Nie mogę fizycznie umieścić szczeniaka w słuchawce telefonu.
Zamiast tego będę musiał przekazać telefonicznie przedstawienie szczeniaka. Innymi słowy, następnie serializuję mojego psa Rexa i wysyłam mu zserializowaną wersję Rexa przez linię telefoniczną:
{ "name":"Rex", "age":5, "favourite_food": pedigree_choice_cuts, "favourite_game": fetch_ball, "favourite_hobby": wagging_tail }
To idealna reprezentacja - serializacja mojego psa.
Podsumowanie:
Serializacja w zasadzie oznacza przekształcenie mojego psa Rexa w coś innego - obiekt JSON - który może być następnie przesyłany przez linię telefoniczną jako ciąg jedynek i zer. Mój kumpel z Nowego Jorku może następnie przetłumaczyć te 1 i 0 z powrotem na obiekt JSON - tak, aby miał doskonałą reprezentację mojego psa Rexa.
źródło
Sprawdź to, to da ci dobre wyjaśnienie:
http://en.wikipedia.org/wiki/Serialization
Myślę, że najpowszechniejsze użycie terminu serializacja wiąże się z konwersją obiektu binarnego na reprezentację XML (lub inny ciąg), tak aby można go było przechowywać w bazie danych / pliku lub przesyłać przez sieć w wywołaniu usługi sieciowej. Deserializacja to proces odwrotny - konwersja XML / ciągu z powrotem do obiektu.
EDYCJA: Innym terminem, z którym możesz się spotkać, jest marshalling / unmarshalling. Marshalling to w zasadzie ta sama koncepcja, co serializacja, a cofanie odczytu jest tym samym, co deserializacja.
źródło
Od https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/concepts/serialization/
(podkreślenie moje)
źródło
Serializacja to proces konwersji nieuporządkowanych danych (takich jak obiekt) na serię tokenów, których można później użyć do zrekonstruowania oryginalnych danych. Formularz serializowany jest najczęściej ciągiem tekstu, ale nie musi.
źródło
serializacja polega na przekształceniu obiektu w zapisywalną sekwencję bitów.
więc możesz zapisać tę sekwencję do pliku, bazy danych lub wysłać przez sieć.
później możesz deserializować go do rzeczywistego obiektu i użyć go ponownie w dowolnym momencie.
Usługi sieci Web i AJAX to najczęstszy przykład serializacji. Obiekty serializowane przed wysłaniem odpowiedzi do klienta.
źródło
serializacja to nic innego jak przeniesienie obsługiwanego obiektu java do postaci obsługiwanej przez plik
konwersja formy obsługiwanej przez java do postaci obsługiwanej przez sieć ... głównym zakresem serializacji jest nic innego jak przeniesienie danych z jednej warstwy do drugiej ... tylko obiekty serializowane możemy przesyłać przez sieć.
źródło
Serializacja to proces konwersji obiektu obsługiwanego w języku Java, C # lub innym (w językach OOP) do postaci przenośnej. W ten sposób jest przesyłany przez sieć lub przechowywany na dysku. Aby klasa była możliwa do serializacji, musi implementować interfejs możliwy do serializacji.
źródło
Serializacja przekształca dane w liniowy „ciąg” bajtów.
Inni powiedzieli mniej więcej to samo, ale podkreślam, że modele komputerowe wymagają, aby dane mieściły się w jednowymiarowej pamięci RAM lub trwałej pamięci.
Większość rzeczy, które są „danymi”, można z natury serializować (nawet jeśli musisz zredukować model abstrakcyjny do modelu liniowego); nie do serializacji to powiedzmy połączenie sieciowe lub skomplikowana maszyna stanowa, taka jak parser.
źródło
serializacja ma do czynienia z konwersją obiektu binarnego na reprezentację XML (lub inny ciąg), tak aby można go było przechowywać w bazie danych / pliku lub przesyłać przez sieć w wywołaniu usługi sieciowej. Deserializacja to proces odwrotny - konwersja XML / ciągu z powrotem do obiektu.
źródło
Podczas tworzenia instancji (konstruowania) rzeczywistego obiektu (rzeczy) z klasy (planu) istnieje potrzeba zapisania obiektu (rzeczy) poprzez jego serializację (rozbicie do podstawowej struktury atomowej) do miejsca w pamięci. (Coś jak Star Treks Transporter). Rozbijasz to na strumień informacji, które mogą być gdzieś transportowane i przechowywane. Następnie, gdy chcesz zrekonstruować rzecz, po prostu przeciągasz atomowo przechowywaną instancję z powrotem do obiektu. Różni się od instaniacji.
źródło
Serializacja to proces konwertowania obiektu na binarny strumień danych, dzięki czemu można go przechowywać w pliku lub wysyłać przez sieć, gdzie można go przywrócić do tego samego obiektu.
Ten dokument powinien pomóc w szczegółowym zrozumieniu serializacji Java.
źródło
Serializacja ma miejsce, gdy obiekt (fragment pamięci) jest tłumaczony w postaci, gdy stan obiektu można zapisać w pliku (jako przykład).
Potraktuj to tylko jako robienie ciasteczek - obiekt to ciasto, ciasteczko - to ciasto zserializowane.
Tak więc przez „serializację” możesz wysłać plik cookie do swojego znajomego.
Coś w tym stylu :-)
źródło