transient關鍵字詳解

2021-10-01 13:16:33 字數 1004 閱讀 5370

一旦變數被transient修飾,變數將不再是物件持久化的一部分,該變數內容在序列化後無法獲得訪問。

transient關鍵字只能修飾變數,而不能修飾方法和類。注意,本地變數是不能被transient關鍵字修飾的。變數如果是使用者自定義類變數,則該類需要實現serializable介面。

乙個靜態變數不管是否被transient修飾,均不能被序列化。

//實體類(必須實現serializable介面,才能被序列化)

public

class

resume

implements

serializable

public

void

setname

(string name)

public string get***()

public

void

set***

(string ***)

public string getage()

public

void

setage

(string age)

public

void

dispaly()

}public

class

maintest2

catch

(exception e)

}}

輸出結果:

姓名:哈哈 年齡:20 性別:男

反序列化:

public

class

maintest2

catch

(exception e)

}}

輸出結果:

姓名:哈哈 年齡:null 性別:女

根據結果可知,age 欄位被 transient 修飾未能序列化,而 *** 在反序列化之前改變了值,所以表明也未被序列化。

Java基礎 transient關鍵字

使用場景 當乙個類實現了serilizable介面,那麼這個類的所有屬性和方法都可以被序列化。但有時,我們不希望有些屬性被序列化,那麼我們可以用transient關鍵字修飾這個屬性。public class user implements serializable public void setus...

transient關鍵字的使用

我們一般使用實現介面serializable或者externalizable來對乙個類進行序列化,二者的區別在於前者是自動序列化的,而後者則需要手動進行序列化,即實現該介面的writeexternal 和 readexternal 方法。transient關鍵字可用於修飾已實現了上述兩個介面的類的成...

transient關鍵字和序列化方式

transient原理 通俗來說,就是將不需要序列化的屬性前新增transient關鍵字,在序列化的時候,有該關鍵字的屬性不會被序列化。序列化就是將物件的狀態儲存在硬碟上,在需要的時候讀出來使用。有些時候是不希望某個物件在網路上傳輸,寫入到磁碟中的,只希望它的生命週期存在記憶體中,就可以使用tran...