课程信息:
- 课程名称:文件传输基础——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接口。
课程截图: