当前位置: 首页 > 面试题库 >

Java序列化的目的是什么?

黄凌龙
2023-03-14
问题内容

我已经读了很多关于序列化的文章,它是如此的好和很棒,但是没有一个论点令人信服。我想知道是否有人真的可以告诉我通过序列化类可以真正实现的目标?


问题答案:

让我们先定义序列化,然后再讨论为什么它如此有用。

序列化只是将现有对象转换为字节数组。此字节数组表示对象的类,对象的版本以及对象的内部状态。然后可以在运行相同代码的JVM之间使用此字节数组来传输/读取对象。

我们为什么要这样做?

有以下几个原因:

  • 通信:如果您有两台运行相同代码的计算机,并且它们需要通信,那么一种简单的方法是,一台计算机使用要传输的信息构建对象,然后将该对象序列化到另一台计算机。这不是最佳的沟通方式,但可以完成工作。

  • 持久性:如果要将特定操作的状态存储在数据库中,则可以轻松地将其序列化为字节数组,然后存储在数据库中以供以后检索。

  • 深度复制:如果您需要对象的 精确 副本,并且不想麻烦编写自己的专用clone()类,只需将对象序列化为字节数组,然后将其反序列化为另一个对象可以实现此目标。

  • 缓存:实际上只是上述应用程序,但有时一个对象需要10分钟的构建时间,而反序列化则只需10秒。因此,与其保留内存中的巨型​​对象,不如通过序列化将其缓存到文件中,并在以后需要时将其读入。

  • 跨JVM同步:序列化可在可能在不同体系结构上运行的不同JVM之间进行。



 类似资料:
  • 本文向大家介绍Java中的序列化是什么?,包括了Java中的序列化是什么?的使用技巧和注意事项,需要的朋友参考一下 Java提供了一种称为对象序列化的机制,该机制可以将对象表示为字节序列,其中包括对象的数据以及有关对象的类型和存储在对象中的数据类型的信息。 示例

  • 如题目所述,想请教一下大佬们在Java中序列化与反序列化的意义是什么,如何理解Java的序列化和反序列化?

  • 序列化就是一种用来处理对象流的机制。将对象的内容流化,将流化后的对象传输于网络之间。 序列化是通过实现serializable接口,该接口没有需要实现的方法,implement Serializable只是为了标注该对象是可被序列化的,使用一个输出流(FileOutputStream)来构造一个ObjectOutputStream对象,接着使用ObjectOutputStream对象的writeO

  • 问题内容: “对象序列化”是什么意思?你能用一些例子解释一下吗? 问题答案: 序列化是将对象转换为一系列字节,以便可以将对象轻松保存到持久性存储或跨通信链接进行流传输。然后可以将字节流反序列化-转换为原始对象的副本。

  • 本文向大家介绍什么是 Java 序列化?什么情况下需要序列化?相关面试题,主要包含被问及什么是 Java 序列化?什么情况下需要序列化?时的应答技巧和注意事项,需要的朋友参考一下 Java 序列化是为了保存各种对象在内存中的状态,并且可以把保存的对象状态再读出来。 以下情况需要使用 Java 序列化: 想把的内存中的对象状态保存到一个文件中或者数据库中时候; 想用套接字在网络上传送对象的时候; 想

  • 本文向大家介绍什么是序列化与反序列化?相关面试题,主要包含被问及什么是序列化与反序列化?时的应答技巧和注意事项,需要的朋友参考一下 序列化:将对象状态转换为可保持或传输的格式的过程。将对象实例的字段及类的名称转换成字节流,然后把字节流写入数据流 反序列化:将流转换为对象。 这两个过程结合起来,可以轻松地存储和传输数据。