Serializable:明明就一个空接口!为什么还要实现它?
目录 01、先来点理论 02、再来点实战 03、再来点注意事项 04、再来点干货 05、再来点甜点 06、再来点总结 对于 Java 的序列化,我一直停留在最浅显的认知上——把那个要序列化的类实现 Serializbale 接口就可以了。我不愿意做更深入的研究,因为会用就行了嘛。 但随着时间的推移,见到 Serializbale 的次数越来越多,我便对它产生了浓厚的兴趣。是时候花点时间研究研究了。 01、先来点理论 Java 序列化是 JDK 1.1 时引入的一组开创性的特性,用于将 Java 对象转换为字节数组,便于存储或传输。此后,仍然可以将字节数组转换回 Java 对象原有的状态。 序列化的思想是“冻结”对象状态,然后写到磁盘或者在网络中传输;反序列化的思想是“解冻”对象状态,重新获得可用的 Java 对象。 再来看看序列化 Serializbale 接口的定义: public interface Serializable { } 明明就一个空的接口嘛,竟然能够保证实现了它的“类的对象”被序列化和反序列化? 02、再来点实战 在回答上述问题之前,我们先来创建一个类(只有两个字段,和对应的 getter/setter ),用于序列化和反序列化。 class Wanger { private String name; private int age; public String