zoukankan      html  css  js  c++  java
  • Serializable

    序列化是把一个对象的状态写入一个字节流的过程,它执行RMI,RMI允许一台机器上的JAVA对象调用不同机器上的JAVA对象方法,对象可以作为参数提供给那个远程方法,发送机序列化该对象并传送它,接收机执行反序列化。
    序列化和反序列化的关系图表可形成包含循环引用的顺序图表。这是整个序列化的总体思想。
    而Serializable接口属于支持序列化的一个接口,只有一个实现它的对象可以被序列化工具存储和回复,Serializable接口没有定义任何成员,只用来表示一个累可以被序列化,若该类可以序列化,那么它的所有子类都可以。
    下面是关于序列化的一个实例:
    程序名称:SerializationDemo.java
    程序主题:实现对象的序列化和反序列化
    程序说明:该程序由实例化一个MyClass类的对象开始,该对象有三个实例变量,类型分别为String、int、double,是希望存储和恢复的信息。




    import java.io.*;

    public class SerializationDemo{
            public static void main(String args[]){

    //Object serialization
    try{
    MyClass object1=new MyClass("Hello",-7,2.7e10);
    System.out.println("object1:"+object1);
    FileOutputStream fos=new FileOutputStream("serial");
    ObjectOutputStream oos=new ObjectOutputStream(fos);
    oos.writeObject(object1);
    oos.flush();
    oos.close();
    }
    catch(Exception e){
    System.out.println("Exception during serialization:"+e);
    System.exit(0);
    }

    //Object deserialization
    try{
    MyClass object2;
    FileInputStream fis=new FileInputStream("serial");
    ObjectInputStream ois=new ObjectInputStream(fis);
    object2=(MyClass)ois.readObject();
    ois.close();
    System.out.println("object2:"+object2);
    }
    catch(Exception e){
    System.out.println("Exception during deserialization:"+e);
    System.exit(0);
    }
    }
    }

    class MyClass implements Serializable{
    String s;
    int i;
    double d;
    public MyClass(String s,int i,double d){
    this.s=s;
    this.i=i;
    this.d=d;
    }
    public String toString(){
    return "s="+s+";i="+i+";d="+d;
    }
    }


    程序运行结果:object1和object2的实例变量是一样的,输出如下:
    object1:s=Hello;i=-7;d=2.7E10
    
    object2:s=Hello;i=-7;d=2.7E10
  • 相关阅读:
    spark读取文件时对字符编码的支持
    SparkSQL 数据分页及Top N
    linux下添加hadoop用户
    Window 10 WSL 下hadoop 伪分布式安装
    Window 10下spark shell使用sparksql 时的 “entry in command string: null ls -F C: mphive”问题解决
    spark数据怎样输出到Sql Server
    spark standalone集群模式下一个启动问题的解决
    Ubuntu 上redis 5.0的安装
    apache ambari 部署分布式系统
    Ubuntu18.04 下 Spark 2.4.3 standalone模式集群部署
  • 原文地址:https://www.cnblogs.com/kelin1314/p/1962183.html
Copyright © 2011-2022 走看看