transient關鍵字的使用

2021-09-12 02:58:20 字數 358 閱讀 9266

我們一般使用實現介面serializable或者externalizable來對乙個類進行序列化,二者的區別在於前者是自動序列化的,而後者則需要手動進行序列化,即實現該介面的writeexternal 和 readexternal 方法。

transient關鍵字可用於修飾已實現了上述兩個介面的類的成員變數,從而使該變數無法被序列化,對該關鍵字的使用總結如下:

transient修飾的變數不能被序列化;

transient只作用於實現 serializable 介面,;對實現externalizable介面的無效;

transient只能用來修飾普通成員變數字段;

不管有沒有 transient 修飾,靜態變數都不能被序列化

transient關鍵字詳解

一旦變數被transient修飾,變數將不再是物件持久化的一部分,該變數內容在序列化後無法獲得訪問。transient關鍵字只能修飾變數,而不能修飾方法和類。注意,本地變數是不能被transient關鍵字修飾的。變數如果是使用者自定義類變數,則該類需要實現serializable介面。乙個靜態變數不...

Java基礎 transient關鍵字

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

transient關鍵字和序列化方式

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