让我们先定义序列化,然后再讨论为什么它如此有用。
序列化只是将现有对象转换为字节数组。此字节数组表示对象的类,对象的版本以及对象的内部状态。然后可以在运行相同代码的JVM之间使用此字节数组来传输/读取对象。
我们为什么要这样做?
有以下几个原因:
通信:如果您有两台运行相同代码的计算机,并且它们需要通信,那么一种简单的方法是,一台计算机使用要传输的信息构建对象,然后将该对象序列化到另一台计算机。这不是最佳的沟通方式,但可以完成工作。
持久性:如果要将特定 *** 作的状态存储在数据库中,则可以轻松地将其序列化为字节数组,然后存储在数据库中以供以后检索。
深度复制:如果您需要对象的 精确 副本,并且不想麻烦编写自己的专用clone()类,只需将对象序列化为字节数组,然后将其反序列化为另一个对象可以实现此目标。
缓存:实际上只是上述应用程序,但有时一个对象需要10分钟的构建时间,而反序列化则只需10秒。因此,与其保留内存中的巨型对象,不如通过序列化将其缓存到文件中,并在以后需要时将其读入。
跨JVM同步:序列化可在可能在不同体系结构上运行的不同JVM之间进行。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)