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

2023-06-15 366 0

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

思考一下:

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

没有这么难理解。

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

  1. 持久化保存:
    众所周知内存中的数据掉电之后就会消失,如果想要保存下来,就要用到序列化,序列化一般有两种形式,一种是二进制,需要实现 Serializable 接口,另外一种就是转成 json 字符串,这时候写到硬盘上,就是持久化保存了
    反序列化就是从二进制数据或者是 json 字符串,再次变为内存对象数据。
  2. 传输
    如果你想把你内存中的对象数据传输给其它人使用,两台机器的内存肯定不能直接互换数据,那么也需要使用序列化,同样一般形式为二进制和 json 字符串,然后再通过 socket 协议发送过去,对方收到后再反序列化为内存对象数据。
    如果有大量的频繁的这种需求,可以使用 protobuf 这一类的工具帮助你压缩

回答

相关文章

nuxt2部署静态化和ssr的时候访问首页先报404再出现首页为什么?
`clip-path` 如何绘制圆角平行四边形呢?
多线程wait方法报错?
VUE 绑定的方法如何直接使用外部函数?
vue2固定定位该怎么做?
谁有redis实现信号量的代码,希望借鉴一下?