Transient 關鍵字用法

1、    java的serialization提供了一個非常棒的存儲對象狀態的機制,說白了serialization就是把對象的狀態存儲到硬盤上去,等需要的時候就可以再把它讀出來使用。但是在存儲對象狀態時,我們有時候會需要特定的對象數據在serialization時不進行存儲。這時候 transient關鍵字就派上用場了。要關掉類的特定的數據域,可以使用transient關鍵字進行定義,這對於底層的java虛擬機來說,這個 transient類型的變量不是一個類的永久性的狀態。

2、比如說在一個實體Bean中,transient和   static字段是非持久性字段,不能保存在數據庫中。  
  另外,如果你的對象需要序列化到數據庫、JDNI或通過Object流傳遞給其他對象的話,對象中的非持久性字段應該加transient關鍵字。

3、  你如果寫了一個程序並需要序列化到本地或者數據庫中(不只是你一個人需要用),並且因爲測試的緣故,你認爲加上了自己的一些信息,例如用戶名,密碼(例如數據庫的身份),這樣方便測試.但是,這些信息是肯定不應該被別人知道或者瞭解的,同時呢,又不想每次自己都去寫都去改,這樣,你可以用 transient定義這樣的變量存儲它們.

4、   下面是java規範中對transient關鍵字的解釋:  
      The   transient   marker   is   not   fully   specified   by   The   Java   Language     Specification   but   is   used   in   object   serialization   to   mark   member   variables   that   should   not   be   serialized.

5、java有個特點就是序列化,簡單地來說就是可以將這個類存儲在物理空間(當然還是以文件的形式存在),那麼當你從本地還原這個文件時,你可以將它轉換爲它本身。這可以極大地方便網絡上的一些操作,但同時,因爲涉及到安全問題,所以並不希望把類裏面所有的東西都能存儲(因爲那樣,別人可以通過序列化知道類裏面的內容),那麼我們就可以用上transient這個關鍵字,它的意思是臨時的,即不會隨類一起序列化到本地,所以當還原後,這個關鍵字定義的變量也就不再存在。
轉自唐山迪銳IT技術論壇:http://bbs.tsp2c.cn/?fromuid=135

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章