gpt4 book ai didi

java - 为什么序列化可以在不实现 Serializable 的情况下工作

转载 作者:行者123 更新时间:2023-11-30 08:12:18 25 4
gpt4 key购买 nike

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

片段-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");
}
}

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

  1. 当我可以在不实现的情况下做事时,实现 Serializable 的优势是什么。

最佳答案

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

换句话说,SerializableTest 是否实现了 Serializable 并不重要,因为 SerializableTest 不是被序列化的对象。

关于java - 为什么序列化可以在不实现 Serializable 的情况下工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30625701/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com