国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

java序列化知識整理

2019-11-14 23:55:19
字體:
來源:轉載
供稿:網友
java序列化知識整理

1. 什么是序列化?

  序列化就是只把一個對象串行化成一個字節流,用于網絡傳輸或者持久化。

2. 序列化的使用場景?

  a). 把內存中的對象持久化到文件或者數據庫中;

  b). 對象在網絡上傳輸。

3. 序列化的實現?

  1). 實現Serializable接口:

    此方法簡單,沒有任何需要實現的方法。

    筆者從業(web開發)兩年一直使用該方法,本文以下主要講解此方法。

  2). 實現Externalizable 接口:Externalizable 是Serializable的子接口    此方法需要實現的方法,可以自己控制序列化的屬性。

4. Serializable序列化的使用注意點

  1. 序列化ID必須一致。

    虛擬機允許反序列化有三個條件:類路勁一致,功能代碼一致,兩個類的序列化ID一致;

  2. 對象A中引用對象B,A實現了序列化,則B也會被序列化;

  3. 父對象實現序列化,則子對象也會被序列化

  4. 子類對象被序列化,則父類對象不會被序列化,反序列化時調用默認的無參構造函數構造對象;

  5. 序列化的對象中有屬性前有transient修飾符時,該屬性不會被序列化,因為該transient屬性是臨時的;

  6.序列化的對象中有屬性前有static修飾符時,該屬性不會被序列化,因為static代表次屬性是類屬性不是對象屬性;

  7. 序列化的對象中有屬性屬于敏感字段,需要加密傳輸,則需要自定義序列化和反序列化。需要注意的是,即使對象的屬性是PRivate也是不安全的,只有人工進行安全處理。

    自定義方法:在序列化的類中自定義writeObject() 和 readObject()方法,虛擬機會試圖調用對象類里的 writeObject 和 readObject 方法,進行用戶自定義的序列化和反序列化,

  如果沒有這樣的方法,則默認調用是 ObjectOutputStream 的 defaultWriteObject 方法以及 ObjectInputStream 的 defaultReadObject 方法。

  6. 序列化存儲規則:當寫入文件的為同一對象時,并不會再將對象的內容進行存儲,而只是再次存儲一份引用,文件大小不會翻倍,只是略有增加(新增引用的控制信息)。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 盐源县| 新蔡县| 和林格尔县| 万全县| 肇东市| 贺州市| 丰顺县| 锦州市| 麻阳| 乌拉特后旗| 剑阁县| 汉阴县| 太仓市| 土默特右旗| 眉山市| 嵩明县| 丰顺县| 库伦旗| 平乡县| 清涧县| 海宁市| 公安县| 勃利县| 龙口市| 蒙自县| 故城县| 南华县| 黄山市| 鄱阳县| 张家港市| 驻马店市| 莱州市| 大名县| 沾益县| 桐柏县| 土默特左旗| 漯河市| 永城市| 安达市| 南陵县| 旌德县|