Rozpoczynam pracę z programowaniem obiektowym (OOP) i chciałbym wiedzieć: jakie jest znaczenie serializacji w języku OOP?
Rozpoczynam pracę z programowaniem obiektowym (OOP) i chciałbym wiedzieć: jakie jest znaczenie serializacji w języku OOP?
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.
Marshal
i Unmarshal
są synonimami Serialize
i Deserialize
.
abc
byłby serializowany jako 0x61 0x62 0x63
(ASCII) lub 0x00 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.JSON
od zera, ponieważ nic o tym nie wiem
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.
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.
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.
Serializacja to proces konwertowania obiektu na strumień bajtów w celu przechowywania obiektu lub przesyłania go do pamięci, bazy danych lub pliku. Jego głównym celem jest zapisanie stanu obiektu, aby móc go odtworzyć w razie potrzeby. Proces odwrotny nazywa się deserializacją.
...
Ta ilustracja przedstawia ogólny proces serializacji
...
Dzięki serializacji programista może wykonywać czynności, takie jak wysyłanie obiektu do zdalnej aplikacji za pośrednictwem usługi sieci Web, przekazywanie obiektu z jednej domeny do drugiej, przepuszczanie obiektu przez zaporę sieciową jako ciąg XML lub utrzymywanie bezpieczeństwa lub specyficzne dla użytkownika informacje w aplikacjach
Od https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/concepts/serialization/
(podkreślenie moje)
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.
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.
serializacja to nic innego jak przeniesienie obsługiwanego obiektu java do postaci obsługiwanej przez plik
(OR)
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ć.
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.
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.
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.
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.
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.
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 :-)