ObjectInputStream与ObjectOutputStream的作用是:对基本数据和对象进行序列化操作进行支持。其中ObjectInputStream对象提供对基本数据和对象对持久存储,当我们需要读取这些存储这些基本数据或对象时,可以创建文件输入流对应的ObjectInputStream,进而读取这些基本数据或对象。序列化有关的基础知识:
1 需要序列化的类必须实现java.io.Serializable接口,否则会抛出NotSerializableException异常。
2 如果检测到反序列化的类的serialVersionUID和对象二进制流的serialVersionUID不同,则会抛出异常。
3 Java序列化会将一个类中包含的引用中的所有的成员变量保存下来,所以里面的引用类型也要实现java.io.Serializable的接口。
4 对于不用采用默认序列化或无需序列化的成员变量,可以添加transient关键字,并不是说添加了transient关键字就一定不能序列化。
5 每一个类可以实现readObject、writeObject等方法实现自己的序列化策略,即使是transient修饰的成员变量也可以手动调用ObjectOutputStream的write*等方法,将成员变量序列化。ObjectOutputStream 有关方法1 public ObjectOutputStream(OutputStream out) throws IOException {}
* 创建一个ObjectOutputStream去写入指定的OutputStream,此构造函数将序列化流头写入底层流,调用者需要立即刷新流,以确保用于接收ObjectInputStreams的构造函数在读取该头时不会阻塞。2 protected ObjectOutputStream() throws IOException, SecurityException {}
* 为完全重新实现ObjectOutputStream的子类提供一种方法,使其不必分配仅由ObjectOutputStream的实现使用的私有数据3 public void useProtocolVersion(int version) throws IOException {}
* 指定在编写流时使用的流协议版本4  public final void writeObject(Object obj) throws IOException {}
* 将指定的对象写入ObjutoExtStudio流,对象的类、类的签名、类及其所有超类型的非瞬态和非静态字段的值都可以通过该方法写入,重写writeObject和readObject方法可以将默认的序列号重写,该对象引用的对象是通过传递方式编写的,以便ObjectInputStream可以重构等效的、完整的对象。

Java IO框架总揽--ObjectInputStream ObjectOutputStream源码解读相关推荐

  1. Java集合框架之三:HashMap源码解析

    Java集合框架之三:HashMap源码解析 版权声明:本文为博主原创文章,转载请注明出处,欢迎交流学习! HashMap在我们的工作中应用的非常广泛,在工作面试中也经常会被问到,对于这样一个重要的集 ...

  2. Java集合框架之接口Collection源码分析

    本文我们主要学习Java集合框架的根接口Collection,通过本文我们可以进一步了解Collection的属性及提供的方法.在介绍Collection接口之前我们不得不先学习一下Iterable, ...

  3. 基于Docker的TensorFlow机器学习框架搭建和实例源码解读

    http://blog.csdn.net/dream_an/article/details/55520205

  4. java b2b2c shop 多用户商城系统源码- eureka集群整合hystrix框架

    继之前项目继续整合hystrix框架,hystrix框架为Netflix的模块,是一个容错框架.当用户访问服务调用者的时候,如果服务提供者出现异常导致无法正常返回出现请求超时的情况,而服务调用者并不知 ...

  5. Java IO: 序列化与ObjectInputStream、ObjectOutputStream

    转载自  Java IO: 序列化与ObjectInputStream.ObjectOutputStream 作者:Jakob Jenkov  译者: 李璟(jlee381344197@gmail.c ...

  6. java计算机毕业设计Vue框架龙猫宠物交易平台源码+mysql数据库+系统+lw文档+部署

    java计算机毕业设计Vue框架龙猫宠物交易平台源码+mysql数据库+系统+lw文档+部署 java计算机毕业设计Vue框架龙猫宠物交易平台源码+mysql数据库+系统+lw文档+部署 本源码技术栈 ...

  7. Android-FixBug热修复框架的使用及源码分析(不发版修复bug)

    前面几篇博文已经介绍了2种热修复框架的使用及源码分析,AndFix兼容性比较好,而Dexposed Art处于Beta版. AndFix和Dexposed都是阿里的开源项目.  Alibaba-And ...

  8. 微服务开源框架TARS的RPC源码解析 之 初识TARS C++服务端

    作者:Cony 导语:微服务开源框架TARS的RPC调用包含客户端与服务端,<微服务开源框架TARS的RPC源码解析>系列文章将从初识客户端.客户端的同步及异步调用.初识服务端.服务端的工 ...

  9. 深圳Java学习:怎么阅读spring源码?

    深圳Java学习:怎么阅读spring源码? 此问必是有心人,有心人必有心答. --题记 当我看到这个问题的时候,不禁心里一问,为何要阅读spring源码? 在我们的生活之中,有形形色色的万物(Obj ...

最新文章

  1. PHP smarty缓存
  2. 带你了解加速度传感器的几种应用
  3. U-net结构及代码注释
  4. python识别验证码ocr_Python 验证码识别-- tesserocr
  5. visual studio 2005没有chart空间_彭啸专访:2005年的国少跳级生 天赋+汗水造就成功...
  6. 一根网线有这么多“花样”,你知道吗?
  7. 【SRH】------node遵循的规范,模块划分
  8. 全球44家机构,55位大佬,历时两年,打造最强NLG评测基准!
  9. openwrt 编译时提示缺少libstdc++,libpthread.so.0文件
  10. 我的内核学习笔记10:Intel GPIO驱动源码分析
  11. 在java中蓝色_Java基础
  12. access与sqlserver数据转换
  13. 解决安装Win 7后XP无法启动问题
  14. maya如何导出ue4_MAYA动画导出以及导入UE4的方式、方法
  15. linux 脚本加密工具下载,linux truecrypt 加密工具
  16. 视频教程-C语言编程入门100题(实战编程)-C/C++
  17. 为什么在项目中要慎用RxBus
  18. 用shell脚本批量删除文件名后缀
  19. RPC框架pigeon源码分析
  20. 四管前级怎么去掉高低音音调_烧友自荐:2SK304四管前级制作难点浅析

热门文章

  1. android textview import,android – textview中的镜像文本?
  2. visual studio输入法打不了中文_我为什么不用Mac自带输入法
  3. a++浏览器_走进浏览器内部—剖析浏览器是如何工作的(上)
  4. hosts和resolv.conf区别
  5. 在windows上模拟linux环境,MSYS2——Windows平台下模拟linux环境的搭建-Go语言中文社区...
  6. ipv6 端口号_计算机网络之IP、MAC、端口号、子网掩码、默认网关、DNS
  7. c语言中的字符变量用什么保留字来说明,第1、2章C语言基础练习题
  8. 过渡效果_12个酷炫创意的动画过渡效果AE模板
  9. 计算机软硬件作品构思报告,计算机方面的实训报告
  10. keepalived重新加载配置——不用重启不发生切换