当前位置: 首页 > 知识库问答 >
问题:

java - Java序列化与反序列化的意义是什么,如何理解Java的序列化和反序列化?

松秦斩
2023-06-12

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

共有2个答案

魏威
2023-06-12

思考一下:

  1. 如果想把内存对象(程序中产生的 Java 对象)保存起来,过一段时间再恢复成同样的对象,该怎么办?
  2. 延伸一下,如果保存和恢复是两个不同的进程呢?
  3. 再延伸一下,如果保存和恢复是两台不同的设备呢?
呼延永新
2023-06-12

没有这么难理解。

意义就是持久化保存或者传输内存数据用的。

  1. 持久化保存:
    众所周知内存中的数据掉电之后就会消失,如果想要保存下来,就要用到序列化,序列化一般有两种形式,一种是二进制,需要实现 Serializable 接口,另外一种就是转成 json 字符串,这时候写到硬盘上,就是持久化保存了
    反序列化就是从二进制数据或者是 json 字符串,再次变为内存对象数据。
  2. 传输
    如果你想把你内存中的对象数据传输给其它人使用,两台机器的内存肯定不能直接互换数据,那么也需要使用序列化,同样一般形式为二进制和 json 字符串,然后再通过 socket 协议发送过去,对方收到后再反序列化为内存对象数据。
    如果有大量的频繁的这种需求,可以使用 protobuf 这一类的工具帮助你压缩
 类似资料:
  • 上一小节我们学习了 Java 的输入输出流,有了这些前置知识点,我们就可以学习 Java 的序列化了。本小节将介绍什么是序列化、什么是反序列化、序列化有什么作用,Serializable 接口以及 Externalizable 接口,常用序列化工具介绍等内容。 1. 序列化与反序列化 序列化在计算机科学的数据处理中,是指将数据结构或对象状态转换成可取用格式,以留待后续在相同或另一台计算机环境中,能

  • 主要内容:1 Java序列化和反序列化,2 Java序列化的优点,3 java.io.Serializable接口,4 Java ObjectOutputStream,5 Java ObjectInputStream,6 Java序列化的例子,7 Java反序列化的例子1 Java序列化和反序列化 Java中的序列化是一种将对象状态写入字节流的机制。它主要用于Hibernate,RMI,JPA,EJB和JMS技术。 序列化的反向操作称为反序列化,其中字节流被转换为对象。序列化和反序列化过程与平台

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

  • 问题内容: 我尝试过在Java和Android之间实现跨平台序列化。我使用了Serializable,并将我的代码在Android中与台式机Java放在同一软件包中。 来源:java-desktop序列化 资料来源:Android-反序列化 学生是一类,实现了Serializable。在桌面上,我将学生实例序列化为“ thestudent.dat”。我将此文件放在Android设备上的SD卡上,并

  • 本文向大家介绍java对象的序列化和反序列化,包括了java对象的序列化和反序列化的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了java对象的序列化和反序列化,供大家参考,具体内容如下 1. 什么是序列化        将对象转换为字节流保存起来,比如保存到文件里,并在以后还原这个对象,这种机制叫做对象序列化。(补充一句:把对象保存到永久存储设备上称为持久化) 2. 怎么实现序列化

  • 本文向大家介绍详解Java 对象序列化和反序列化,包括了详解Java 对象序列化和反序列化的使用技巧和注意事项,需要的朋友参考一下 之前的文章中我们介绍过有关字节流字符流的使用,当时我们对于将一个对象输出到流中的操作,使用DataOutputStream流将该对象中的每个属性值逐个输出到流中,读出时相反。在我们看来这种行为实在是繁琐,尤其是在这个对象中属性值很多的时候。基于此,Java中对象的序列