transient 關鍵字

一個對象只要實現了Serilizable接口,這個對象就能夠被序列化java

  • java的這種序列化模式爲開發者提供了不少便利,咱們能夠沒必要關係具體序列化的過程
  • 只要這個類實現了Serilizable接口,這個類的全部屬性和方法都會自動序列化
  • 將不須要序列化的屬性前添加關鍵字transient,序列化對象的時候,這個屬性就不會序列化到指定的目的地中

transient使用小結、

  • 一旦變量被transient修飾,變量將再也不是對象持久化的一部分,該變量內容在序列化後沒法得到訪問
  • transient關鍵字只能修飾變量,而不能修飾方法和類
    • 注意,本地變量是不能被transient關鍵字修飾的
    • 變量若是是用戶自定義類變量,則該類須要實現Serializable接口
  • 被transient關鍵字修飾的變量再也不能被序列化,一個靜態變量無論是否被transient修飾,均不能被序列化

對象的序列化能夠經過實現兩種接口來實現spa

  • 若實現的是Serializable接口,則全部的序列化將會自動進行
  • 若實現的是Externalizable接口,則沒有任何東西能夠自動序列化,須要在writeExternal方法中進行手工指定所要序列化的變量,這與是否被transient修飾無關
相關文章
相關標籤/搜索