技术文章 > java >  java基础 > 正文

java IO流序列化的概念

小妮浅浅

在存储的时候,把字节转换成对象教序列化的使用。如果想把字节换回来,就要运用到反序列化的概念。IO流中的序列化用于处理字节序列的问题,需要我们先对IO流序列化的概念、图解、使用场景进行了解,在了解基本概念后,我们进一步学习IO流序列化的构造方法。

1.概念

Java 提供了一种对象序列化的机制,用一个字节序列可以表示一个对象,该字节序列包含该对象的数据、对象的类型和对象中存储的属性等信息。字节序列写出到文件之后,相当于文件中 持久保存了一个对象的信息。反之,该字节序列还可以从文件中读取回来,重构对象,对它进行 反序列化。对象的数据、对象的类型和对象中存储的数据信息,都可以用来在内存中创建对象。

2.图解

3.使用场景

1)所有需要网络传输的对象都需要实现序列化接口,通过建议所有的javaBean都实现Serializable接口。

2)对象的类名、实例变量(包括基本类型,数组,对其他对象的引用)都会被序列化;方法、类变量、transient实例变量都不会被序列化。

3)如果想让某个变量不被序列化,使用transient修饰。序列化对象的引用类型成员变量,也必须是可序列化的,否则,会报错。

4)反序列化时必须有序列化对象的class文件。

5)当通过文件、网络来读取序列化后的对象时,必须按照实际写入的顺序读取。

6)单例类序列化,需要重写readResolve()方法;否则会破坏单例原则。

7)同一对象序列化多次,只有第一次序列化为二进制流,以后都只是保存序列化编号,不会重复序列化。

8)建议所有可序列化的类加上serialVersionUID 版本号,方便项目升级。

4.构造方法

public ObjectOutputStream(OutputStream out) : 创建一个指定OutputStream的ObjectOutputStream。
FileOutputStream fileOut = new FileOutputStream("employee.txt");
ObjectOutputStream out = new ObjectOutputStream(fileOut);

以上就是java IO流序列化的概念学习,可以用于字符与对象的转换,在用法上有序列化和反序列化两种,想要学习的可以在课后找资料了解。

免费视频教程
本文原创发布python学习网,转载请注明出处,感谢您的尊重!
相关文章
 java IO流有几种
 IO字节流在java中的使用
 java IO字符流的用法
 java字符流和字节流替换方法
 java中File类的使用
 java IO流效率对比
 IO流在java中的实例操作
相关视频章节
 网络爬虫
 云端部署Web应用程序视频
 Web应用框架Flask和文件模板
 Web应用程序开发概述
 继承和多态
推荐视频
视频教程分类