java中类的序列化

     一、序列化的含义是什么?

             序列化就是将一个对象的状态(各个属性量)保存起来,然后在适当的时候再获得。 
          序列化分为两大部分:序列化和反序列化。
 序列化是这个过程的第一部分,将数据分解成字节流,以便存储在文件中或在网络上传输。反序列化就是打开字节流并重构对象。对象序列化不仅要将基本数据类型转换成字节表示,有时还要恢复数据。恢复数据要求有恢复数据的对象实例。

    二、序列化的特征:

           如果某个类能够被序列化,其子类也可以被序列化。声明为static和transient类型的成员数据不能被序列化。因为static代表类的状态, transient代表对象的临时数据。

    三、何时运用序列化?

           1)当你想把的内存中的对象状态保存到一个文件中或者数据库中时候;
           2)当你想用套接字在网络上传送对象的时候;
           3)当你想通过RMI传输对象的时候;

    四、在进行序列化时,需要注意什么?

             1)序列化时,只对对象的状态进行保存,而不管对象的方法;
             2)当一个父类实现序列化,子类自动实现序列化,不需要显式实现Serializable接口;
             3)当一个对象的实例变量引用其他对象,序列化该对象时也把引用对象进行序列化;
             4)并非所有的对象都可以序列化,,至于为什么不可以,有很多原因了,比如:
                  a.安全方面的原因,比如一个对象拥有private,public等field,对于一个要传输的对象,比如写到文件,或者进行rmi传输  等等,在序列化进行传输的过程中,这个对象的private等域是不受保护的。
                  b. 资源分配方面的原因,比如socket,thread类,如果可以序列化,进行传输或者保存,也无法对他们进行重新的资源分  配,而且,也是没有必要这样实现。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值