Java の transient キーワードはシリアル化プロセスで重要な役割を果たし、ストレージを最適化し、何を制御するかを制御するために特定のフィールドの永続化を防ぎます。
transient キーワードはフィールドをマークします。シリアル化中は非永続的として扱われます。これは、これらのフィールドがシリアル化されたデータから除外され、ストレージ領域が節約される可能性があることを意味します。
一時フィールドは、フィールドの値を簡単に導出または計算できる場合に役立ちます。永続的なストレージを必要とするのではなく、他のフィールドにアクセスできます。たとえば、ギャラリー画像には、元の画像から生成されたサムネイル画像が保存される場合があります。
次の GalleryImage クラスについて考えてみましょう。
class GalleryImage implements Serializable { private Image image; private transient Image thumbnailImage; }
ここで、thumbnailImage は次のとおりです。一時的としてマークされているため、イメージのみがシリアル化されます。
一時フィールドが逆シリアル化時に正しく復元されるようにするには、readObject メソッドをオーバーライドしてフィールドを再初期化します。
private void readObject(ObjectInputStream inputStream) throws IOException, ClassNotFoundException { inputStream.defaultReadObject(); generateThumbnail(); }
ここで、readObject メソッドは、generateThumbnail メソッドを呼び出してサムネイルを作成します。デシリアライズ後。
を活用することでJava を使用すると、開発者はどのデータをシリアル化するかを制御し、ストレージを最適化し、計算された値が不必要に永続化されないようにすることができます。
以上がJava の「transient」キーワードはどのようにシリアル化を最適化し、永続データを制御できるのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。