私はソフトウェアエンジニアであり、同僚と議論した後、シリアル化の概念を十分に把握していないことに気付きました。私が理解しているように、シリアル化は、OOPのオブジェクトなどのエンティティをバイトシーケンスに変換するプロセスであり、そのエンティティを後のアクセスのために保存または送信できます(「逆シリアル化」のプロセス)。
私が抱えている問題は、すべての変数(プリミティブのようなものでもint
、複合オブジェクトでも)がすでにバイトシーケンスで表されているのではないかということです。(もちろん、レジスタ、メモリ、ディスクなどに格納されているためです)
それでは、シリアル化をこれほど深いトピックにしているのはなぜですか?変数をシリアル化するために、これらのバイトをメモリに取り込んでファイルに書き込むことはできませんか?私が見逃した複雑さは何ですか?
4 bytes
PDP-11でintをシリアル化してから、同じ4バイトをMacbookのメモリに読み取ろうとすると、それらは同じ数ではありません(エンディアンのため)。したがって、デコード可能な表現にデータを正規化する必要があります(これはシリアル化です)。データをシリアル化する方法には、人間と機械が読み取り可能な速度/柔軟性のトレードオフもあります。