持久性和序列化之间有什么区别?

时间:2014-01-07 19:47:16

标签: java hibernate java-ee

我已经通过这个链接,但我正在寻找令人信服的答案。 访问http://www.coderanch.com/t/270170/java-programmer-SCJP/certification/Difference-serialization-persistence

3 个答案:

答案 0 :(得分:2)

序列化是将对象转换为另一种表示的过程(通常是二进制的,但您可以序列化为其他形式,如xml,但默认的java序列化机制是二进制形式)。您可以保留该对象的序列化形式以进行读取(反序列化)以还原该对象。序列化还用作跨进程/机器(例如使用RMI)发送Java对象的机制。序列化不是持久性,而持久性是可以使用的一种方式。

答案 1 :(得分:2)

简单回答:序列化是将对象的表示改变为另一个对象的过程(主要是为了通过通信机制传递它),而持久性目标是持久化(是的,它是同一个词)对象状态(以便以后检索)到物理存储。

但这两个主题都是密切相关的。大多数持久层依赖于对象序列化和反序列化,而不是太多提供对象的二进制转储和恢复。 有趣的是,大多数开发人员将实现de / serialization的过程视为一项相当无聊的任务,而开发持久层则更令人感兴趣。 嗯,显然,第二个更复杂,而前一个通常只是它的一个子任务。

答案 2 :(得分:2)

持久性 - 一种允许您在应用程序执行之间保持状态的机制。

也许数据库,也许是文件,有时会缓存,在某些情况下非常奇怪,就像在云中一样。

序列化 - 一种以串行形式表示对象的方法,允许将其存储起来供以后恢复。

经常用于持久化对象。