有人可以解释给定程序的输出吗?
程序
public class Serial implements Serializable
{
String name;
int i;
public Serial()
{
name = "serial";
System.out.println("Constructor");
}
}
public class Main
{
public static void main(String[] args) throws Exception
{
Serial s = new Serial();
FileOutputStream fo = new FileOutputStream("rohit.rohit");
ObjectOutputStream oo = new ObjectOutputStream(fo);
oo.writeObject(s);
FileInputStream fi = new FileInputStream("rohit.rohit");
ObjectInputStream oi = new ObjectInputStream(fi);
Serial se = (Serial) oi.readObject();
System.out.println(se.name +" "+ se.i);
}
}
此计划的输出
构造
serial 0
我期待构造函数不会调用。但是这里的构造函数正在调用并且只是初始化值而不打印任何东西。请解释一下。
答案 0 :(得分:1)
以下行正在调用构造函数,因此您会看到SOP
Serial s = new Serial();