java中什么是序列化和反序列化
序列化:能够把一个对象用二进制的表示出来。
类似我第一个字节表示什么属性名词,第二个字节表示什么属性值,第几个字段表示有几个属性等。
而且这个二进制可以写到硬盘或者在网络上传输但不会破坏他的结构。一般远程方法调用是必须能够序列化的对象才行。
实现序列化需要实现java.io.Serializable接口。但我们可以再某些属性上添加一个关键字,让这个属性不被序列化。具体关键字怎么写我忘记了,你可以查一下。
反序列化:就是通过序列化后的字段还原成这个对象本身。但标识不被序列化的字段是不会被还原的。
如一般人员的密码信息等属性需要标识不被序列化。防止网络传输被窃取,特别是web程序。
类似我第一个字节表示什么属性名词,第二个字节表示什么属性值,第几个字段表示有几个属性等。
而且这个二进制可以写到硬盘或者在网络上传输但不会破坏他的结构。一般远程方法调用是必须能够序列化的对象才行。
实现序列化需要实现java.io.Serializable接口。但我们可以再某些属性上添加一个关键字,让这个属性不被序列化。具体关键字怎么写我忘记了,你可以查一下。
反序列化:就是通过序列化后的字段还原成这个对象本身。但标识不被序列化的字段是不会被还原的。
如一般人员的密码信息等属性需要标识不被序列化。防止网络传输被窃取,特别是web程序。
作者:nomad
链接:https://www.zhihu.com/question/47794528/answer/107683459
来源:知乎
著作权归作者所有,转载请联系作者获得授权。