persistence and serialization in Java

2020-02-14

img

对象持久化就是将对象存储在可持久保存的存储介质上,例如主流的关系数据库中。在实际应用中,需要将业务数据以对象的方式保存在数据库中,就需要应用到相应的对象持久化框架,如现在广为认知的Hibernate。而如果查阅对象持久化的历史,会发现早在1970年就已经开始有称之为面向对象数据库OODBMS。通常这些面向对象的数据库和特定的一种语言绑定。对象持久化的重点在于如何将业务数据对象存储在持久化介质上,并同时提供查询修改的手段

数据序列化就是将对象或者数据结构转化成特定的格式,使其可以在网络中传输,或者可存储在内存或者文件中。反序列化则是相反的操作,将对象从序列化数据中还原出来。而对象序列化后的数据格式可以是二进制,可以是XML,也可以是JSON等任何格式。对象/数据序列化的重点在于数据的交换和传输,例如在远程调用技术(如EJB,XML-RPC,Web Service),或者在GUI控件开发(JavaBean)等等。

总结,对象持久化和对象序列化是两个不同应用场景不同纬度的两个概念。

对象持久化是一个广义的概念,简单说就是save/load,多用以描述和数据库相关的操作。

序列化是Java中的一项技术,把结构化的对象转化成无结构的字节流,侧重于数据交换和传输,不仅仅能用于数据的持久化。