1. 程式人生 > >對象的序列化

對象的序列化

必須 能夠 img 關註 要求 允許 不想 images com

對象的序列化:Java平臺允許我們在內存中創建可復用的Java對象,但一般情況下,只有當JVM處於運行時,這些對象才可能存在,即,這些對象的生命周期不會比JVM的生命周期更長。但在現實應用中,就可能要求在JVM停止運行之後能夠保存(持久化)指定的對象,並在將來重新讀取被保存的對象。Java對象序列化就能夠幫助我們實現該功能。

使用Java對象序列化,在保存對象時,會把其狀態保存為一組字節,在未來,再將這些字節組裝成對象。必須註意地是,對象序列化保存的是對象的"狀態",即它的成員變量。由此可知,對象序列化不會關註類中的靜態變量。

技術分享

  1. 基本數據類型的變量可以直接序列化
  2. 對象要被序列化,它的類必須實現Serializable接口,如果一個類中有引用類型的變量,這個引用類型的變量的類也必須實現Serializable接口。如果這個引用類型的變量不想被實例化,則用transient修飾(ObjectInputStream)
  3. transient 修飾的變量在對象串化的時侯並不會將所賦值的值保存到傳中,串化的對象從磁盤讀取出來仍然是null。
  4. 能夠對對象進行傳輸的貌似只有ObjectOutputStream和ObjectInputStream這些以Object開頭的流對象。

對象的序列化