一 什么叫序列化
通俗點講:它是處理對象流的一種機制,即可以很方便的保存內存中java對象的狀態,同時也為了方便傳輸。
二 序列化有什么作用
1.方便傳輸,速度快,還很安全,被調用方序列化,調用方反序列化即可拿到傳輸前最原始的java對象,常用於不同進程之間的對象傳輸
2.方便存儲,不管是存儲成文件還是數據庫,都行,存儲為文件,下回要用可以直接反序列拿到對象
三 怎么序列化和反序列化
實現序列化接口就行(里面什么方法都沒有,不用管的,只是一個標記接口而已)Serializable;
至於他們的代碼怎么寫,網上例子很多,隨便搜一下就行了
四 序列化時需要注意事項
為了不必要的報錯麻煩: 序列化時最好是定義序列化版本id 即 public static final Long seriaVersionUID = 1L (默認) 或者 xxxxx L(自定義64位都行)
因為反序列化會判斷序列化中的id和類中的id是否一樣,如果不定義雖然會自動生成,但如果后面改了東西列,所以還是自覺點定義一個id,省去好多麻煩
同時記住靜態變量不會被序列化的,它可不在堆內存中,序列化只會序列化堆內存