私はオブジェクト指向プログラミング(OOP)を使い始めています。知りたいのですが、OOP用語でのシリアル化の意味は何ですか?
私はオブジェクト指向プログラミング(OOP)を使い始めています。知りたいのですが、OOP用語でのシリアル化の意味は何ですか?
回答:
シリアライゼーションとは、メモリ内のオブジェクトをバイトストリームに変換して、ディスクに格納したり、ネットワーク経由で送信したりできるようにするプロセスです。
逆シリアル化は逆のプロセスです。バイトのストリームをメモリ内のオブジェクトに変換します。
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 }
それは完璧な表現です-私の犬の連載。
シリアライゼーションとは、基本的に、犬のRexを別の何か(JSONオブジェクト)に変換することを意味し、電話線を介して1と0のシリーズとして転送できます。ニューヨークの私の仲間は、それらの1と0をJSONオブジェクトに変換して戻すことができるので、彼は私の犬のレックスを完全に表現しています。
これをチェックしてください、これはあなたに良い説明を与えるでしょう:
http://en.wikipedia.org/wiki/Serialization
シリアル化という用語の最も一般的な使用法は、バイナリオブジェクトをXML(またはその他の文字列)表現に変換して、データベース/ファイルに格納したり、Webサービス呼び出しでネットワーク経由で送信したりすることに関係していると思います。逆シリアル化は逆のプロセスです-XML /文字列をオブジェクトに変換します。
編集:あなたが遭遇するかもしれない別の用語はマーシャリング/アンマーシャリングです。マーシャリングは基本的にシリアライズと同じ概念であり、アンマーシャリングはデシリアライズと同じです。
シリアライゼーションは、オブジェクトをバイトストリームに変換して、オブジェクトを保存または送信するプロセスです。、メモリ、データベース、またはファイルにしたりするプロセスです。その主な目的は、オブジェクトの状態を保存して、必要なときにオブジェクトを再作成できるようにすることです。逆のプロセスは、逆シリアル化と呼ばれます。
...
この図は、シリアル化の全体的なプロセスを示しています
...
開発者はシリアライゼーションを通じて、Webサービスを介してオブジェクトをリモートアプリケーションに送信する、オブジェクトをあるドメインから別のドメインに渡す、ファイアウォールを介してXML文字列として渡す、セキュリティやユーザー固有のメンテナンスを行うなどのアクションを実行できます。アプリケーション全体の情報
https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/concepts/serialization/から
(強調鉱山)
シリアライゼーションは、順序付けされていないデータ(オブジェクトなど)を一連のトークンに変換するプロセスであり、後で元のデータを再構築するために使用できます。シリアル化された形式は、ほとんどの場合テキストの文字列ですが、そうである必要はありません。
シリアライゼーションは、Java、C#、またはその他(OOP言語)でサポートされているオブジェクトを転送可能な形式に変換するプロセスです。これにより、ネットワーク経由で転送したり、ディスクに保存したりできます。クラスを直列化可能にするには、直列化可能インターフェースを実装する必要があります。
シリアル化とは、オブジェクト(メモリのチャンク)がオブジェクトの状態を(例として)ファイルに保存できる形式に変換されるときです。
Cookieを作成するように扱ってください-オブジェクトは生地、Cookieはシリアル化された生地です。
したがって、「シリアライズ」することで、あなたの友達にクッキーを送ることができます。
そんな感じ :-)