Java 序列化 与 反序列化 的各种方式

个人理解,Java 的序列化和反序列化,是指可以把 java 对象持久化后,又可以重新从持久化的数据中生成 java 对象。

下面是这些年遇到的一些序列化和反序列化方式。

1. JDK 自带的流序列化和反序列化:

    java.io.ObjectOutputStream 可以把 java 对象序列化。

    java.io.ObjectInputStream 可以把持久化后的数据反序列化成 java 对象。

    PS: 用这种方式实现序列化的 java 对象必须实现 java.io.Serializable 或 java.io.Externalizable接口

 

2. JDK 自带的 jaxb 方式:

    jaxb可以实现通过定义 schema 来实现 java对象和xml数据之间的转换,这种方式在SOAP中很普及。

 

3. JSON:

    JSON 数据传输格式使用越来越普及,现在流行的FastJSON,JackJSON,Gson 都可以轻松的将 java对象转换成 json格式的字符串。

 

4. protobuf:

    protobuf 是将数据序列化成二进制的数据,而 json 是序列化成字符串数据,相比而言 protobuf 序列化后的数据更小,至于性能方面,后续再来个benchmark。

 

 

 

 

转载于:https://my.oschina.net/simonton/blog/1549311

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值