hessian学习基础篇——序列化和反序列化

1、概念介绍

   把Java对象转换为字节序列的过程称为对象的序列化。
   把字节序列恢复为Java对象的过程称为对象的反序列化。

   对象的序列化主要有两种用途:
  1) 数据介质存储
  2) 数据网络传输

2、对象序列化实例

     为了更好的理解hessian的序列化机制,所以把java和hessian的对象序列化实例都一一列出。

      1)对象序列化--java

Java代码   收藏代码
  1. public byte[] serialize(Object obj) throws Exception {  
  2.     if(obj==nullthrow new NullPointerException();  
  3.       
  4.     ByteArrayOutputStream os = new ByteArrayOutputStream();  
  5.     ObjectOutputStream out = new ObjectOutputStream(os);  
  6.     out.writeObject(obj);  
  7.     return os.toByteArray();  
  8. }  
  9.   
  10. public Object deserialize(byte[] by) throws Exception {  
  11.     if(by==nullthrow new NullPointerException();  
  12.       
  13.     ByteArrayInputStream is = new ByteArrayInputStream(by);  
  14.     ObjectInputStream in = new ObjectInputStream(is);  
  15.     return in.readObject();  
  16. }  

 

      2)对象序列化--hessian (hessian2的序列化方式在附件中)

 

Java代码   收藏代码
  1. public byte[] serialize(Object obj) throws IOException{  
  2.     if(obj==nullthrow new NullPointerException();  
  3.       
  4.     ByteArrayOutputStream os = new ByteArrayOutputStream();  
  5.     HessianOutput ho = new HessianOutput(os);  
  6.     ho.writeObject(obj);  
  7.     return os.toByteArray();  
  8. }  
  9.   
  10. public Object deserialize(byte[] by) throws IOException{  
  11.     if(by==nullthrow new NullPointerException();  
  12.       
  13.     ByteArrayInputStream is = new ByteArrayInputStream(by);  
  14.     HessianInput hi = new HessianInput(is);  
  15.     return hi.readObject();  
  16. }  

 

         从以上代码不难看出,对象序列化的过程为:

         先将对象转为字节码或其它,然后再将其还原为对象。在反序列化时,内存中必须有源对象的所属类。

 

3、对象序列化效率

     hessian2在这方面有了很大的改进,所以优势十分明显。具体细节不再详述,在进阶篇中,我会详述序列化的实现细节。在此仅把实例执行结果公布出来:

执行结果代码   收藏代码
  1. java:  
  2. 77  
  3. stxm  
  4.   
  5. hessian:  
  6. 41  
  7. stxm  
  8.   
  9. hessian2:  
  10. 30  
  11. stxm  
  12.   
  13. 说明:  
  14. 1、数字为对象序列化后的字节长度。  
  15. 2、‘stxm’为对象方法的执行结果。  

 

    hessian2的优点,谁用谁知道。待我再做深入研究之后,再把我自己认为的和大家认为的优点总结一下,并加以解释。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值