zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    mysql那些事(1)手机号与座机号码如何存储
    分享一个PHP调用RestFul接口的函数
    php sprintf用法
    HTTP状态码详解
    PHP随机生成中国人姓名的类
    PHP计算两组经纬度坐标之间的距离
    PHP根据经纬度获取在范围坐标的数据
    PHP 利用QQ邮箱发送邮件「PHPMailer」
    PHP中利用PHPMailer配合QQ邮箱实现发邮件
    修改PHP上传文件大小限制
  • 原文地址:https://www.cnblogs.com/zhangkefan/p/4818422.html
Copyright © 2011-2022 走看看