2009年4月14日 星期二

Java keyword -- transient

物件序列化這個在C++時代就有被討論的議題,Java於1.1以後提供一個介面
Serializable實作此序列化機制。所謂序列化,就是能將記憶體(Memory)中的
實體物件(Object Instance)以位元流(byte stream)方式儲存於永久媒體如
硬碟,此過程叫序列化。而且之後也能從硬碟中再讀取該物件於記憶體中重
建,並回復先前狀態。

Java實作物件序列化非常簡單,你只需將想要序列化的物件去實作(implements)
java.io.Serializable介面,其他序列化的工作,JVM會幫你完成,你會發現,
Serializable介面中沒有定義任何方法(Method),其實它是一個Marker Interface
它只是告訴JVM此物件可以被序列化!!

- transient
此為Java保留字,告訴JVM以transient宣告的基本型態(primitive type)或物件
(object)變數不要序列化,例如敏感性資料像是密碼等,或是在其他環境不
可獲得的資源如JDBC及Network Socket等。總之只要基本型態或物件以
transient宣告,JVM就不會將它序列化。

沒有留言:

張貼留言