Javaでのシリアル化とデータベースストレージの違いは何ですか? シリアライゼーションは、実際にはサーバー上のデータベースにデータを保存することを意味していませんか?
4 に答える
データベースをボウルのように考えてみましょう。
物がどこにも行かないようにしたい場合は、ボウルに入れます。
あなたのものは、あなたが保存したいデータです。今、それはテーブルの上、箱の中にあります。
それでは、その箱から物を取り出します。問題は、私たちの箱の中のものはおそらくボウルに収まらないということです. どうすれば修正できますか?
ボウルに収まるタイプのオブジェクトに変更する必要があります。シリアル化する必要があります。
シリアル化されたデータは、ボウルに収まります。シリアル化されたデータをボウルに注ぎ、その日の最も重要な食事を用意します。
これがすべて本当に複雑だった場合。簡略化:シリアル化することは変更することであり、データベースはデータを保存する場所です。多くの場合、保存する前に物を変更します。
シリアル化は、オブジェクトをデータベース ストレージ用に準備するために使用できます。これは、オブジェクトを、文字列やバイト ストリームなどの格納可能または転送可能な形式に変換するプロセスです。
Java オブジェクトをほとんどの通常のストレージ タイプにそのまま格納することはできませんが、たとえば JSON にシリアル化すると格納できます。シリアライゼーションとデシリアライゼーションが適切に実装されていれば、後でストレージから JSON を取得し、デシリアライズして元のオブジェクトと同じオブジェクトを取得できます。
もちろん、これはデータベース ストレージを伴う必要はありません。たとえば、オブジェクトを JSON ストリームにシリアル化すると、インターネット経由で送信して、別のコンピューターで逆シリアル化することもできます。
シリアル化は、データ構造を、任意の方法で永続化(ハードドライブに保存)できる形式に変換するプロセスです。バイナリ、xml、プレーンテキスト、htmlなどがあります。通常の目標は、逆シリアル化できるようにすることです。つまり、データ構造が永続化されたときの状態を復元することです。
データベースは、データを保存する場所(方法ではありません)にすぎません。
いいえ、まったくありません。Java でのシリアライゼーションは、オブジェクトの保存可能なバージョンを生成する API であり、後でディスクから (または保存した場所に) ロードして戻すことができ、(できれば! ) 以前と同じ状態のオブジェクトに戻すことができます。ネットワーク化されたアプリケーションに適したGoogle Protobufsなどの代替手段がありますが、ほとんどの単純な用途には十分です。