1、java本身的序列化机制存在的问题
1、序列化数据结果比较大,传输效率比较低
2、不能跨语言对接
以至于在后来的很长一段时间,基于XML格式编码的对象序列化机制成为了主流,一方面解决了多语言兼容问题,另一方面比二进制的序列化方式更容易理解。以至于基于XML的SOAP协议及对应的WebService框架在很长一段时间内成为各个主流开发语言的必备的技术。
Json的简单文本格式编码取代webservice
1、json序列化存储的特点存储占用空间大
2、性能低
开源二进制序列化框架:MessagePack、Protocol Buffers
java怎么去实现一个序列化操作,实现Serializable接口
注意点:
1、序列化并不会序列化静态变量的状态
2、transient关键字表示指定属性不参与序列化
3、父类没有实现序列化,而子类实现的序列化接口,父类中的成员变量不参与序列化操作.
4、serialVersionUID 和序列化的类的各个元素有关系,例如:增加了属性,改变了名称,都可能导致随机生成的UID发生变化,详见effective java,有具体讲解
5、序列化的存储规则,如果对同一个对象多次序列化,打印出的第一次存储结果和第二次的存储结果,只多很少的字节数(增加引用的关系而已)