作成日 2008/6/9
最終更新日 2008/6/9

オブジェクトのシリアライズとデシリアライズ

 このページではオブジェクトのシリアライズ(※1)とデシリアライズについて説明します。

-----
※1:Javaはシリアライズを言語機能の一部として備えていますが、VBAはそうではありません。なので、自分でコードを書かなくてはなりません。疲れるよ・・・。

1.シリアライズとは
2.シリアライズを使うとき
3.参考文献など


1.シリアライズとは

 シリアライズとはオブジェクトを直列化することなのですが、これではさっぱり判らない。

 シリアライズとは、オブジェクトをバイト配列に変換することです(※1)。バイト配列からオブジェクトに戻す(復元する)ことはデシリアライズと言います(※2)。
 シリアライズのイメージ図(図1)を作成しましたので、見てください。

シリアライズのイメージ図
図1 シリアライズのイメージ図(※3)


-----
※1:XMLに変換することもシリアライズということもあります。
※2:オブジェクトをバイト配列に変換することと、バイト配列からオブジェクトを復元することの両方をひっくるめてシリアライズということもあります。
※3:これはイメージ図です。この変換方式はだるまが説明用に適当に考えたものです。以下のような細かいこと(?)は考えないでください。細かいことを知りたい人は参考文献 の3番を見てください。
このページのトップへ

2.シリアライズを使うとき

 一般的には以下のときに使用します。 あ、ちなみに、シリアライズの乱用は危険ですので注意してください(参考文献の4番を参照してください)。
  1. 簡易的なオブジェクト(データ)の保存するとき
    ただし、例えばファイルに保存したとき、ファイルの中身を人間が見て判るような形かというとそうではありません。そのため、保存に使えるといっても、保存されたものを人間が見たり修正したりするところではシリアライズは向いていません(※1)。 
  2. ネットワークでデータを送信するとき
    まあ、バイトの配列(テキストでも良いが)にしないと、送信できないからね・・・。
  3. オブジェクトをディープコピー(※2)したい場合にわざとシリアライズすることがあるようです。
-----
※1:XMLに変換することもシリアライズと言うこともあるようです。その場合はこの通りではありません。
※2:ディープコピーについては「シャローコピーとディープコピー - だるまのエクセルVBA 」を参照してください。
このページのトップへ

3.参考文献など

 このページを作成するのに参考にしたページです。

番号

リンク先の名称

リンク先の説明

リンクした日

1 シリアライズ - Wikipedia - 直列化 シリアライズ(直列化)についての説明があります。 2008/6/9
2 オブジェクト直列化 Javaのオブジェクト直列化について書いてあります 2008/6/9
3 Java オブジェクト直列化仕様: - 上記のページからたどれるページです。
Javaのオブジェクト直列化の仕様です。
2008/6/9
4 Javaの“常識”、“非常識” 第3回 - ITアーキテクト [IT Architect] Javaにてクラスをシリアライズ可能とするかどうかについての注意事項が載っています。
※だるまのページ(このページ)では注意事項については全くふれませんでしたが、読んでおいた方がよいです。
2008/6/9


Prev Up Next  Top
このページのトップへ

このページの利用によって発生した、いかなる損害について、このホームページの作成者は責任を負いません。
このページの間違いや嘘を見つけた方、このページに書いて欲しい情報がある方はメールをお願いします。

Microsoft 、Windows 、Visual Basic および Excel は米国Microsoft Corporationの米国およびその他の国における登録商標または商標です。
ここではExcel® をエクセル、Visual Basic® for Applications をVBAと表記する場合があります。
Mac 、Mac OS 、Mac OS X は米国Apple Computer,Inc.の登録商標または商標です。
その他、社名および商品名、システム名称などは、一般に各社の商標または登録商標です。
Sun、Sun Microsystems、サンのロゴマーク、Java、及び、Sun/Solaris/Java に関連するすべての商標およびロゴマークは米国 Sun Microsystems, Inc. の米国およびその他の国における商標または登録商標です。

このホームページの作成者はこれらの会社とはいっさい関係がありません。