Java序列化详解
Java序列化详解1. 什么是Serialization?Serialization is the process of turning structured objects into a byte stream序列化就是一个将结构对象转换成字节流的过程。【笔者补充:可能在生成字节流的时候:去掉了某些对象的信息(比如某个字段),或者又添加了某些其它信息(比如jvm版本信息)】2. 为...
Java
序列化详解
1. 什么是Serialization
?
Serialization is the process of turning structured objects into a byte stream
序列化就是一个将结构对象转换成字节流的过程。
【笔者补充:可能在生成字节流的时候:去掉了某些对象的信息(比如某个字段),或者又添加了某些其它信息(比如jvm
版本信息)】
2. 为什么需要Serialization
?
for transmission over a network
for writing to persistent storage.
如上所述,就是为了跨网络传输,以及持久化存储。
要知道持久化存储的目的是在未来的某个时间上,尝试进行读取、恢复等操作。
3.其它问题
3.1 为什么不用结构对象进行跨网络传输和持久化存储呢?
首先明确:任何数据在计算机中的存储都是0,1
进制的,所以即使不序列化对象,依然可以传输。即结构对象可以进行跨网络传输和持久化存储。
3.2 那为什么非要序列化之后再传输呢?
对象在内存中的数据本来就是二进制的啊。直接拷贝对象在内存中的数据然后写入到磁盘中不就可以了么,为什么还要搞个序列化框架呢?
- 01.序列化所做的工作除了将数据以二进制存入本地外,还要提供筛选数据,防止重复存储等功能。但是如果直接赋值内存中的数据,肯定达不到筛选数据,防止重复存储等功能。
- 02.跨平台、或者跨语言时,这个序列化方式就显得更重要了。例如,可以将java 对象序列化成
xml
或者json
形式。这样即使是python
等非java
语言都可以直接使用这个xml 或者json 对象得到自己需要的信息了。
3.3 序列化 = 字节化 ?
我的理解是:序列化不等于字节化。
4.总结
通过上面的叙述。我对序列化的理解就是 序列化使得对象信息更加普通化,可读化。这样就可以使得别的进程,别的语言,别的平台都能够知道这个对象信息,从而保证了对象信息的持久化

GitCode 天启AI是一款由 GitCode 团队打造的智能助手,基于先进的LLM(大语言模型)与多智能体 Agent 技术构建,致力于为用户提供高效、智能、多模态的创作与开发支持。它不仅支持自然语言对话,还具备处理文件、生成 PPT、撰写分析报告、开发 Web 应用等多项能力,真正做到“一句话,让 Al帮你完成复杂任务”。
更多推荐
所有评论(0)