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中文網其他相關文章!