不是那么技术化的方式,什么是对象序列化及其目的?什么时候应该使用?
(任何类比的例子都欢迎)
谢谢
对象序列化允许您将对象(数据结构)转换为二进制或其他自定义表示。这又可以用于通过线路发送这些二进制表示或将它们存储在文件系统上。
序列化可用于
事实上,Java对象序列化的一个有趣的事情是,您可以使用标准的序列化机制,它将数据从对象转换为二进制表示,或者通过实现Serializable接口中的方法来自定义它。除此之外,您还可以“手动”读取对象的数据并对其进行序列化,即读取值并将其转换为您想要的任何格式,无论您想要什么样的格式。
看看以下资源:
基本上,它是一种保存存储在对象中的数据的方法,例如,到磁盘或通过网络传输。然后可以稍后重建该对象。
最简单的解释方法是:
序列化是一种获取应用程序中的对象并以某种永久格式(二进制,xml等)描述它们的方法。
一旦序列化,你可以无限期地存储......通过电线发送它们......稍后再读它们......用你的想象力。
对象序列化是将对象的状态保存到字节序列的过程,以及在将来某个时间将这些字节重建为活动对象的过程。
这是一篇讨论Secrets of the Java Serialization的文章
另一个Stack Overflow问题中有一个very good summary here。引用accepted answer:
序列化是将对象转换为一系列字节,以便可以将对象轻松保存到持久存储或通过通信链接进行流式传输。然后可以对字节流进行反序列化 - 转换为原始对象的副本。
不是技术性的:序列化是将基于内存的结构(如在主内存中正常生活的对象)流式传输到持久的,通常的硬盘的过程。因此,您可能会将对象的结构映射为XML。