zoukankan      html  css  js  c++  java
  • java对象序列化的概念

    java对象序列化的概念

    序列化是将对象状态信息转换为可存储或传输的过程,序列化时,对象会将当前状态写入到临时或持久性的存储区。

    一  java对象序列化的概念

    1.序列化的概念 序列化的概念就是把一个Object直接转换成为Byte流写到硬盘或者通过网络进行传播。Java序列化技术可以将一个对象的状态写入一个Byte流里,并且可以从其它地方把该Byte流里的数据读出来,重新构造一个相同的对象。这种机制允许将对象通过网络进行传播,并可以随时把对象持久化到数据库、文件等系统里。Java的序列化机制是RMI、EJB等技术的技术基础。

    2.序列化就是一种用来处理对象流的机制,所谓对象流也就是将对象的内容进行流化。可以对流化后的对象进行读写操作,也可将流化后的对象 传输于网络之间。序列化是为了解决在对对象流进行读写操作时所引发的问题。

    序列化的注意点

    注意点1
    如果某个类能够被序列化,其子类也可以被序列化。如果该类有父类,则分两种情况来考虑,如果该父类已经实现了可序列化接口。 则其父类的相应字段及属性的处理和该类相同;如果该类的父类没有实现可序列化接口,则该类的父类所有的字段属性将不会序列化

    注意点2
    声明为static和transient类型的成员数据不能被序列化。因为static代表类的状态,transient代表对象的临时数据

    注意点3
    在java.io包提供的涉及对象的序列化的类与接口有

    ObjectOutput接口 
    该接口继承DataOutput接口并支持对象的序列化,其writeObject()方法实现存储一个对象。

    ObjectInput接口
    该接口继承DataInput接口并支持对象的序列化,其readObject()方法实现读取一个对象。

    ObjectOutputStream类
    该类继承OutputStream类并实现ObjectOutput接口,可调用接口中的writeObject方法。

    ObjectInputStream类。
    该类继承InputStream类并实现ObjectInput接口,可调用接口中的readObject方法。

    注意点4
    对于父类的处理时,若父类没有实现序列化接口,则其必须有默认的构造函数,否则编译的时候就会报错。在反序列化的时候,默认构造函数会被调用。若把父类标记为可以序列化,则在反序列化的时候,其默认构造函数不会被调用。因为Java对序列化的对象进行反序列化的时候,直接从流里获取其对象数据来生成一个对象实例,而不是通过其构造函数来完成。

  • 相关阅读:
    看了一些Tab标签的效果,正好在学习前端,自己动手也写个把~
    js时间的操作,为了让cookie在当天24点过期~
    《转载》CSS换行问题
    【PHP项目】form表单的enctype属性
    php中处理字符串的常见函数
    PHP加密函数
    PHP判断时关于null,0,true,flase的值
    获取PHP页面的当前文件名(包括后缀名)
    php中关于empty()函数是否为真的判断
    【PHP】判断变量是否为控
  • 原文地址:https://www.cnblogs.com/ppdpp/p/7635547.html
Copyright © 2011-2022 走看看