美文网首页
序列化和反序列化原理

序列化和反序列化原理

作者: 奋斗的韭菜汪 | 来源:发表于2020-06-15 23:15 被阅读0次

没有实现序列化的对象通过流传输会报NotSeralizableException

跨jvm传输的办法:序列化和反序列化
序列化:把对象(object)转化成特定的形态(xml, json),然后以数据流的方式传输
序列化不会自动保存static和transient变量
好处:减少对象的大小,对象传递的跨平台/语言
反序列化:数据流 ->特定格式(xml,json)->对象

private static final long serialVersionUID = -2975139301805213397L;
serialVersionUID是对象唯一的标记
若不指定serialVersionUID,系统会自动生成一个
关键字transient 修饰的对象,表示该对象不需要序列化
实际开发过程中,我们常常会遇到这样的问题,这个类的有些属性需要序列化,而其他属性不需要被序列化,打个比方,如果一个用户有一些敏感信息(如密码,银行卡号等),为了安全起见,不希望在网络操作(主要涉及到序列化操作,本地序列化缓存也适用)中被传输,这些信息对应的变量就可以加上transient关键字。换句话说,这个字段的生命周期仅存于调用者的内存中而不会写到磁盘里持久化。

HashMap

private void writeObject(java.io.ObjectOutputStream s)throws java.io.IOException
private void readObject(java.io.ObjectInputStream s)throws java.io.IOException, ClassNotFoundException

自定义序列化和反序列化方法,通过反射访问private方法

分布式架构下的序列化技术
1、序列化的数据大小(影响传输效率)
2、跨语言, json(对外接口的通信)/xml
对内的服务于服务之间一般使用:
1、hessian
2、msgpack
3、prototuf(压缩率非常高)(不易使用)
4、kyro
5、avro
6、hassian2(dubbo)
7、json(spring cloud)
8、jute(zookeeper)

JSON
Fastjson :序列化,和反序列化速度快,接口简单,易上手
jackson(spring mvc): 性能要比fastjson和gson要好,稳定性更好
Gson

hessian
性能、易用性要比默认的序列化方式要好
kyro、avro :大数据处理有使用,不能跨语言
prototuf:序列化数据非常小、传输效率非常高,每个字段会按照tag、length(可省略)、value进行序列化

序列化的选项:
序列化空间的大小,(空间)
序列化过程的效率,(时间)
是否支持跨语言
技术的成熟度

相关文章

  • 序列化和反序列化的底层实现原理

    序列化和反序列化的底层实现原理

  • Java-序列化-反序列化

    Thanks Java基础学习总结——Java对象的序列化和反序列化java序列化反序列化原理Java 序列化的高...

  • Java序列化

    Android序列化 目标 为什么序列化 序列化的定义 Serializable的使用和原理 Parcelable...

  • Spark序列化

    Java序列化 有关Java对象的序列化和反序列化也算是Java基础的一部分,首先对Java序列化的机制和原理进行...

  • 【Flink 精选】常见的性能问题及其定位思路

    常见的性能问题及其定位思路 1.常见的性能问题 (1)JSON序列化和反序列化 source的序列化,sink的反...

  • Java基础18:Java序列化与反序列化

    本文介绍了Java序列化的基本概念,序列化和反序列化的使用方法,以及实现原理等,比较全面地总结序列化相关知识点,并...

  • 序列化和反序列化的概念

    1序列化:把对象转为字节序列的过程 为序列化; 2相反:字节---------->对象 为反序列化 3 序列化的场...

  • 序列化

    Java的Serializable序列化原理:序列化是通过FileOutputStream及ObjectOutpu...

  • java专题之序列化

    一、基本概念 1、什么是序列化和反序列化 (1)Java序列化是指把Java对象转换为字节序列的过程,而Java反...

  • 序列化和反序列细节处理

    python 中pickle 和 json 都是序列化和反序列化的模块。 关于序列化和反序列化 序列化和反序列化[...

网友评论

      本文标题:序列化和反序列化原理

      本文链接:https://www.haomeiwen.com/subject/jwnhxktx.html