什么是对象序列化?(Java)

时间:2009-04-22 19:10:43

标签: java serialization object

不是那么技术化的方式,什么是对象序列化及其目的?什么时候应该使用?

(任何类比的例子都欢迎)

谢谢

6 个答案:

答案 0 :(得分:7)

对象序列化允许您将对象(数据结构)转换为二进制或其他自定义表示。这反过来可用于通过线路发送这些二进制表示或将它们存储在文件系统上。

序列化可用于

  • 通过网络发送对象
  • 持久性
  • Deepcopy对象树

事实上,Java对象序列化的一个有趣的事情是,您可以使用标准的序列化机制,它将数据从对象转换为二进制表示,或者通过实现Serializable接口中的方法来自定义它。除此之外,您还可以“手动”读取对象的数据并对其进行序列化,即读取值并将其转换为您想要的任何格式,无论您想要什么样的格式。

查看以下资源:

答案 1 :(得分:4)

基本上,这是一种保存存储在对象中的数据的方法,例如到磁盘或通过网络传输。然后可以在以后重建该对象。

答案 2 :(得分:2)

最简单的解释方法是:

序列化是一种获取应用程序中对象并以某种永久格式(二进制,xml等)描述它们的方法。

一旦序列化,您可以无限期地存储...通过电线发送它们......稍后再读它们......用你的想象力。

答案 3 :(得分:1)

对象序列化是将对象状态保存为字节序列的过程,以及将来将这些字节重建为活动对象的过程。

这是一篇讨论Secrets of the Java Serialization

的文章

答案 4 :(得分:1)

另一个Stack Overflow问题中有一个very good summary here。引用accepted answer:

  

序列化是一种转换   对象是一系列字节,所以   该对象可以轻松保存到   持久存储或流式传输   通讯链接。字节流   然后可以反序列化 - 转换   成为原始物体的复制品。

答案 5 :(得分:0)

不技术:序列化是将基于内存的结构(如在主内存中正常生活的对象)流式传输到持久的,通常的硬盘的过程。因此,您可能会将对象的结构映射到XML之类的内容。