Java--ObjectInputStream和ObjectOutputStream

Posted 徐阶

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java--ObjectInputStream和ObjectOutputStream相关的知识,希望对你有一定的参考价值。

1.这两个输入输出流的作用?

  将Java对象写入到文件当中

2.什么是序列化和反序列化?

  序列化:将 Java对象 由内存中写入 文件

  反序列化:将 Java对象 由文件中读出来(读出来的对象可以使用多态机制,用一个object引用来指向)

3.待序列化的类要implements一个标识接口,Serializable。标识接口中没有定义任何的方法,只是起到标识的作用。JVM如果看到某个对象实现了某个标识接口,会对它特殊待遇

  --“特殊待遇”:jvm会在创建对象的时候,给这个类添加一个属性: static  final  long  serialVersionUID  (序列化版本号)

4.在序列化存储对象的时候,JVM会生成一个序列化版本号。当这个类进行后续的升级变动之后,再使用的时候会生成一个新的序列化版本号。当两个序列化版本号不一致的时候,JVM会认为这是两个不兼容的类,就会报错

  --解决办法:在创建要序列化的类的时候,就手动在类中创建一个序列化版本号的成员变量。这样就不会再产生兼容性的问题

 

5.如果不想让某属性参与序列化,使用transient关键字修饰即可。这样在反序列化的时候,该属性哪怕之前已经赋值,也会指向null

以上是关于Java--ObjectInputStream和ObjectOutputStream的主要内容,如果未能解决你的问题,请参考以下文章

I/O复用 select和poll

常用的排序算法和时间复杂度

:I/O 管理 -- I/O设备的概念和分类I/O控制器I/O控制方式

`O_DIRECT | 有啥区别? O_SYNC` + write() 和 `O_DIRECT` + write() + fsync()

O(n) 和 O(log(n)) 之间的区别 - 哪个更好,O(log(n)) 到底是啥?

(计算机组成原理)第七章输入和输出系统-第一节:I/O系统基本概念和I/O控制方式简介