誰でも指定したプログラムの出力を説明できますか?このプログラムのシリアライゼーション出力で混乱しています
プログラム
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);
}
}
出力が
あるコンストラクタ
シリアル0
私は、コンストラクタは呼び出さないことを期待していました。しかし、ここのコンストラクタは何も印刷せずに呼び出して値を初期化するだけです。これを説明してください。ライン後
は、なぜあなたは、コンストラクタが呼ばれることを期待していなかったので、参照してコンストラクタを呼び出していますか? – EJP