• 技术文章 >java >java基础

    java IO流序列化的概念

    小妮浅浅小妮浅浅2021-01-04 17:17:11原创2232

    在存储的时候,把字节转换成对象教序列化的使用。如果想把字节换回来,就要运用到反序列化的概念。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流序列化
    上一篇:IO流在java中的实例操作 下一篇:IO流序列化在java中的作用及不足

    相关文章推荐

    • java IO流有几种• IO字节流在java中的使用• java IO字符流的用法• java字符流和字节流替换方法• java中File类的使用• java IO流效率对比• IO流在java中的实例操作

    全部评论我要评论

    © 2021 Python学习网 苏ICP备2021003149号-1

  • 取消发布评论
  • 

    Python学习网