天天看點

【Java】Serializable序列化

代碼:

@Data

public class BaseEntity implements Serializable {

@TableId(value = "id", type = IdType.AUTO)
private Long id;
private LocalDateTime created;
private LocalDateTime updated;
private Integer statu;           

}

可以看到定義實體的時候implements Serializable與普通的不一樣,普通的我們就會直接寫一個類就OK

但是為什麼需要這樣寫來序列化呢?

1.遠端方法調用(RMI)使本來存在于其他機器的對象可以表現出好象就在本地機器上的行為。将消息發給遠端對象時,需要通過對象序列化來傳輸參數和傳回值。

2.使用一個Java Bean 時,它的狀态資訊通常在設計期間配置好。程式啟動以後,這種狀态資訊必須儲存下來,以便程式啟動以後恢複;具體工作由對象序列化完成。

通俗來說就是将存儲對象在硬碟中,以便在下次使用的時候,可以很快捷的重建一個。

第二個就是便于資料傳輸,尤其是在遠端調用的時候!

仔細檢視Serializable接口代碼是一個裡面什麼都沒有的接口

它的源代碼是public interface Serializable{},即什麼都沒有。

但是我們也要有這個實作。

最後總結:serializable接口就是Java提供用來進行高效率的異地共享執行個體對象的機制,實作這個接口即可。

可以參考文章:

https://www.cnblogs.com/wangenxian/p/11003221.html https://www.cnblogs.com/huhx/p/serializable.html