为了账号安全,请及时绑定邮箱和手机立即绑定

【备战春招】第10天 JAVA输入输出流

标签:
Java

课程名称:JAVA输入输出流

课程章节:第6章 对象的序列化和反序列化

课程讲师: Cedar

课程内容:


一、序列化基础操作

1)对象序列化,就是把Object转换成byte序列,反之叫对象的反序列化

2)序列化流(ObjectOutputStream),是过滤流-->writeObject

反序列化流(ObjectIntputStream),-->readObject

3)序列化接口(Serializable)

对象必须实现序列化接口,才能进行序列化,否则将出现异常

接口没有任何方法,只是一个标准

示例:

1、对象的序列化

//提示java.io.NotSerializableException异常,表示Student类未实现Serializable接口

https://img1.sycdn.imooc.com//63ed7ed5000179db14500816.jpg

2、对象的反序列化

https://img1.sycdn.imooc.com//63ed7ee00001164a14500814.jpg

二、transient和ArrayList源码分析

4)transient关键字

private transient int stuage;//该元素不会进行JVM默认的序列化,故序列化时值为0

示例:

https://img1.sycdn.imooc.com//63ed7ef80001ed6a14500816.jpg

//自行完成这个元素的序列化,反序列化

private void writeObject(java.io.ObjectOutputStream s) throws java.io.IOException

private void readObject(java.io.ObjectInputStream s) throws java.io.IOException,ClassNotFoundException

https://img1.sycdn.imooc.com//63ed7f10000164f114480816.jpg

ArrayList仅对有效元素进行序列化、反序列化

https://img1.sycdn.imooc.com//63ed7f1b0001299e14480816.jpg

三、序列化中子父类的构造函数问题

5)序列化中,子类和父类的构造函数调用

//对子类对象进行反序列化操作时,如果其父类没有实现反序列化接口,那么其父类的构造函数会被调用

//递归调用父类的构造函数

https://img1.sycdn.imooc.com//63ed7f230001c0aa14520816.jpg

https://img1.sycdn.imooc.com//63ed7f2b0001b32611580234.jpg

课程收获:

对JAVA输入输出流有了整体的了解,字节流、字符流、对象序列化流,需继续理解不同场景下如何使用合适的流类型,以及不同方法的性能差异进行比较。


点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

举报

0/150
提交
取消