• Serializable接口


    Serializable为标志性接口,当编译器看到对象实现了此接口,就表明此对象需要被序列化。

    什么叫序列化:把一个Object直接转换成字节流写到硬盘上,或者写到网络上。

    直接写Object的初衷:

    当我们要磁盘中保存一个对象的时候,需要把对象的属性记录下来,比如一个正方形:长,宽,颜色,线条等属性,然后把这些属性值保存下来,

    为什么不直接把对象保存下来,直接转化为字节流写到硬盘或者网络上

    举例如下:

    public class TestObjectIO {
       public static void main(String args[]) throws Exception {
          T t = new T();
          t.k = 8;
          FileOutputStream fos = new FileOutputStream("d:/share/java/io/testobjectio.dat");
          ObjectOutputStream oos = new ObjectOutputStream(fos);
          oos.writeObject(t);
          oos.flush();
          oos.close();
      
          FileInputStream fis = new FileInputStream("d:/share/java/io/testobjectio.dat");
          ObjectInputStream ois = new ObjectInputStream(fis);
          T tReaded = (T)ois.readObject();
          System.out.println(tReaded.i + " " + tReaded.j + " " + tReaded.d + " " + tReaded.k);
       }
    }

    class T implements Serializable
    {
           int i = 10;
       int j = 9;
       double d = 2.3;
       transient int k = 15;
    }

    transient修饰的成员变量在序列化的时候不予考虑,网硬盘上写的时候,这个值不考虑,读出的时候就是默认的值,如上面的程序K的值开始时是15,读出的时候是0

  • 相关阅读:
    自适应高度的 文本框
    点击小图片遮罩显示大图片
    C++中的声明与定义
    LeetCode_Bit Manipulation
    “纯”面向对象
    指针和引用
    new和delete用法小结
    C++中的变量属性小结
    C++的一些黑暗料理
    Python中的字典和集合
  • 原文地址:https://www.cnblogs.com/zhangkefan/p/4818422.html
Copyright © 2020-2023  润新知