有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java为什么序列化可以在没有实现可序列化的情况下工作

序列化类时必须实现可序列化类。我尝试将对象数据放入带有和不带有可序列化实现的文件中,发现完全没有区别

片段-1

import java.io.*;
import java.net.*;
public class SerializableTest {

    int a= 10;
    String test="Serialize test";

    public static void main(String [] args){

        SerializableTest test =new SerializableTest();
        test.save();
    }

    public void save(){

        try{

            FileOutputStream fs = new FileOutputStream("save.res");
            ObjectOutputStream os = new ObjectOutputStream(fs);
            os.writeObject(test);
            os.close();

        }
        catch (Exception ex ){
            System.out.println("Error in opening or saving file");

        }
        System.out.println("Complete");
    }
}

片段-2

    import java.io.*;
    import java.net.*;
    public class SerializableTest **implements Serializable**{

    int a= 10;
    String test="Serialize test";

    public static void main(String [] args){

        SerializableTest test =new SerializableTest();
        test.save();
    }

    public void save(){

        try{

            FileOutputStream fs = new FileOutputStream("save.res");
            ObjectOutputStream os = new ObjectOutputStream(fs);
            os.writeObject(test);
            os.close();

        }
        catch (Exception ex ){
            System.out.println("Error in opening or saving file");

        }
        System.out.println("Complete");
    }
}

在这两种情况下,程序都运行良好,并且保存了内容。res看起来非常相似

  1. 实现Serializable的好处是什么?如果我可以在不实现Serializable的情况下完成任务

共 (1) 个答案

  1. # 1 楼答案

    Serializable理想情况下应该由需要序列化的对象实现String实现Serializable。您正在序列化String对象。您没有序列化SerializableTest

    换句话说,不管SerializableTest是否实现Serializable,因为SerializableTest不是要序列化的对象