自我介绍范文网

当前位置:主页自我介绍范文网 > 考试 > 公务员 > 公职考试 > 公选领导 > 公文写作 > 基础知识 > >

为什么需要序列化

来源::网络整理 | 作者:管理员 | 本文已影响

  在做java开发的时候,经常需要在对象上加序列化即实现implements Serializable 接口,这个接口没有任何的方法需要实现。这么做的目的是干什么的?这个目的在于,他做了一个标志,表示这个类是可以被用来序列化的,可以进行网络传输,可以以二进制的形式保存在文件系统中。

  Java序列化是指把Java对象保存为二进制字节码的过程,Java反序列化是指把二进制码重新转换成Java对象的过程。

  那么为什么需要序列化呢?

  第一种情况是:一般情况下Java对象的声明周期都比Java虚拟机的要短,实际应用中我们希望在JVM停止运行之后能够持久化指定的对象,这时候就需要把对象进行序列化之后保存。

  第二种情况是:需要把Java对象通过网络进行传输的时候。因为数据只能够以二进制的形式在网络中进行传输,因此当把对象通过网络发送出去之前需要先序列化成二进制数据,在接收端读到二进制数据之后反序列化成Java对象。

  验证文件存储为什么需要序列化

  

为什么需要序列化


  如果按正常字符串写入到文件中,使用sublime打开,会发现文件中存放的是二进制的数据:

  如果没有序列化,会有报错信息:

  

为什么需要序列化


  

  为什么要保存成二进制数据呢?

  通过跟踪源码可以发现,java是根据一定的规范/协议将数据转化成二进制保存起来的。不建议看下去,太绕了。总之记住一句话:如果要对对象进行保存,就需要进行序列化。

  

  网络传输为什么需要序列化呢?

  

  计算机计算时只能使用二进制,因为只有高电平和低电平,所以用二进制,用十进制表示只是为了方便些,如果用二进制表示结果不把你看的累死

  (1)可行性。由于二进制只有两种可能的取值0和1,因此在物理上最容易实现,可以用电子元件的两种不同状态来表示。如开关的接通和断开,晶体管的导通和截止,电位电平的高与低等。

  (2)简易性。二进制的运算规则也比较简单,二进制的加法规则有4条:0+0=0;0+1=1;1+0=1;1+1=0(有进位),而十进制的加法规则有100条,因而使计算机运算器的硬件结构大大简化。

  (3)逻辑性。由于二进制0和1正好盒逻辑代数的假(false)真(ture)相对应,有逻辑代数的理论基础,用二进制表示二值逻辑很自然。

  总之记住一句话:计算机的电子元件使用二进制能比较快速进行逻辑判断和计算,所以网络传输需要进行序列化,转为二进制处理。


分享到: 更多

更多关于“基础知识”的文章

随机阅读TODAY'S FOCUS