• 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

  • 相关阅读:
    JavaScript连等赋值
    vue入坑总结
    form表单与后台请求的关系
    JavaScript构造函数、继承的理解
    前端知识未学习点
    js垃圾回收机制
    前端闭包
    html中strong与b,em与i标签的区别(转帖)
    Docker 搭建开源跳板机_jumpserver (运维开源堡垒机_jumpserver) Centos_7.0
    python EasyUI + Django--整合 CSRF 防护去除
  • 原文地址:https://www.cnblogs.com/zhangkefan/p/4818422.html
Copyright © 2020-2023  润新知