シリアル化は、Javaの永続化に使用されます。シリアル化を使用していくつかのオブジェクトを永続化してもかまいません。ただし、多数のオブジェクトの場合、ORM、データベースなどの方が適している場合があります。シリアル化は、小さなジョブにのみ役立つようです。私は間違っているかもしれません。それでは、非シリアル化方法よりもシリアル化の利点は何ですか?いつそれを使用し、いつそれを避けるべきですか?
この質問は、DZoneの記事Is Object Serialization Evil?を見て思い浮かびました。
そして、これらは私の質問を引き起こした行です:
Javaとそのセッションオブジェクトを見ると、純粋なオブジェクトのシリアル化が使用されます。アプリケーションセッションの存続期間がかなり短い(最大で数時間)と仮定すると、オブジェクトのシリアル化は単純であり、十分にサポートされ、セッションのJavaコンセプトに組み込まれています。ただし、データの永続性が長期間(場合によっては数日または数週間)にわたり、アプリケーションの新しいリリースを心配する必要がある場合、シリアル化はすぐに悪になります。優れたJava開発者が知っているように、セッションでもオブジェクトをシリアル化する場合は、1Lだけでなく実際のシリアル化ID(serialVersionUID)が必要であり、Serializableインターフェイスを実装する必要があります。ただし、ほとんどの開発者は、Javaの逆シリアル化プロセスの背後にある実際のルールを知りません。オブジェクトが変更された場合、オブジェクトに単純なフィールドを追加するだけでなく、シリアライゼーションIDが変更されていなくても、Javaがオブジェクトを正しくデシリアライズできない可能性があります。突然、データを取得できなくなります。これは本質的に悪いことです。
さて、これを読んでいる開発者は、この問題のあるコードを決して書かないと言うかもしれません。それは本当かもしれませんが、あなたが使用しているライブラリや、あなたの会社に雇用されなくなった他の開発者はどうでしょうか?この問題が発生しないことを保証できますか?それを保証する唯一の方法は、異なるシリアル化方法を使用することです。
1L
」ではない部分は正しくありません。