您现在的位置是:课程教程文章
java IO流序列化的概念
2023-12-15 21:25课程教程文章 人已围观
-
【上元网校4】新概念英语第一册 从零开
【上元网校4】新概念英语第一册 从零开... -
Kubernetes入门学习到企业实战的方方面面之
Kubernetes入门学习到企业实战的方方面面之起源Google的Kubernetes 在过去几年中一直是云计算领域最著名的开源项目之一,项... -
新概念英语核心词汇【第四册】
新概念英语核心词汇【第四册】① 14页讲义在PC端本页面底部/第一节课页面下载。 ② 本课程为新概念(四)... -
大厂名企Java面试题100+高频面试真题技巧
大厂名企Java面试题100+高频面试真题技巧免费领取全部视频+学习资料,请添加加播妞QQ1905496411 视频以面试题为线索,深...
在存储的时候,把字节转换成对象教序列化的使用。如果想把字节换回来,就要运用到反序列化的概念。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流序列化的概念学习,可以用于字符与对象的转换,在用法上有序列化和反序列化两种,想要学习的可以在课后找资料了解。
课程教程:java IO流序列化的概念下一篇:没有了