Java序列化版本ID的知識點


1.爲什麼要序列化


在網絡傳輸中需要序列化成二進制文件進行傳輸


在保存對象時候需要序列化成二進制文件進行保存


2.如何實現序列化


實現接口serializable


3.序列化版本ID的作用


在反序列化的時候起作用,拿到二進制文件的id與class文件進行id對比如果不一致,則拋出異常。


4.序列化版本ID生成策略



4.1警告提示,java編譯器會根據包名,類名,方法名,屬性名,生成一個64位hashcode


4.2  規定類文件爲固定id爲1L


5.爲什麼要規定序列化版本ID

如果我們想要在已經序列化後的java文件改變java文件的屬性,javac就會重新編譯一遍.java文件生成class文件。重新生成一個序列化版本ID,與二進制文件的ID做對比,就會不一致,拋異常。

再回到問題。如果規定了序列化版本ID,第一次編譯這個.java文件。生成的id都是固定的,以後怎麼修改都是固定的。二進制文件也是這個id,所以反序列化在比較id就永遠一致。

總結第5個問題:說白了,就是滿足可以隨時修改序列化類的屬性方法。

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