手记

【金秋打卡】第11天 文件传输基础——Java IO流

课程信息:

- 课程名称:文件传输基础——Java IO流

- 章节名称:第六章 对象的序列化和反序列化

- 讲师姓名:Cedar


课程内容:


1. 对象序列化,就是将Object转换成byte序列,反之叫对象的反序列化。

2. 

  • 序列化流ObjectOutputStream,字节的过滤流   writeObject() 方法

  • 反序列化流ObjectInputStream   --- readObject() 方法

3. 序列化接口(Serializable)

对象必须实现序列化接口,才能进行序列化,否则将出现异常,并且这个接口没有任何方法,只是一个标准

4. transient及ArrayList源码分析

private transient int tuage; //该元素不会进行jvm默认的序列化,也可以自己完成这个元素的序列化

transient关键字:

private void writeObject(java.io.ObjectOutputStream s) throws IOException {
    s.defaultWriteObject();  // 把jvm能默认序列化的元素进行序列化操作
    s.writeObject(stuage); //把需要自己完成序列化的属性使用writeObject写入
}
private void readObject(java.io.ObjectInputStream s) throws IOException, ClassNotFoundException {
    s.defaultReadObject();  // 把jvm能默认反序列化的元素进行反序列化操作
    this.stuage = s.readInt(); //把需要自己完成反序列化的属性使用readInt写入
}

5. 分析ArrayList源码中序列化以及反序列化的问题

使用transient自己来实现序列化有时可提升性能。

学习心得:

通过本节课的学习,我了解了Java中的序列化以及反序列化的知识,知道了想要实现序列化必须继承Serializable接口。

课程截图:

0人推荐
随时随地看视频
慕课网APP