A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

1、什么是序列化:
    序列化就是一种用来处理对象流的机制,所谓对象流也就是将对象的内容进行流化
    序列化后可以对流化后的对象进行读写操作,也可将流化后的对象传输于网络之间

2、序列化与反序列化:
  序列化  : 把Java对象转换为字节序列的过程
  反序列化 : 把字节序列恢复为Java对象的过程

3、序列化目的及用途:
    目的:
        序列化是为了解决在对对象流进行读写操作时所引发的问题
    用途:
       a. 把对象的字节序列永久地保存到硬盘上
       b. 在网络上传送对象的字节序列

4、如何实现序列化:
    实现序列化有两种方式
        a. 将被序列化的类实现Serializable接口
        注意:
           Serializable接口没有需要实现的方法,
           实现Serializable接口只是为了标注该对象是可被序列化的,然后使用一个 输出流 来构造一个 对象流(ObjectOutputStream) 对象,
           然后使用 对象流 对象的 writeObject(Object obj) 方法就可以将参数为obj的对象写出(即保存其状态),要恢复的话则用输入流

        b. 实现接口Externalizable

5、实现Java的序列化注意事项:
     a. Java的序列化时,transient变量和静态变量不会被序列化

     b. 如果先序列化对象A后序列化B,那么在反序列化的时候一定记着JAVA规定先读到的对象是先被序列化的对象,不要先接收对象B,
        因为那样会报错,尤其在使用Externalizable的时候一定要注意读取的先后顺序

     c. 实现序列化接口的对象并不强制声明唯一的serialVersionUID,
        但是是否声明serialVersionUID对于对象序列化的向上向下的兼容性有很大的影响

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马