import java.io.*;
public class TestSer{public static void main (
String[] args)
{
SpecialSerial s=new SpecialSerial();
try
{
ObjectOutputStream os = new ObjectOutputStream (new FileOutputStream("myFile"));
os.writeObject(s);
os.close();
System.out.println(s.y + " " +s.z);
ObjectInputStream is = new ObjectInputStream(new FileInputStream("myFile"));
SpecialSerial s2= (SpecialSerial)is.readObject();
is.close();
System.out.println(s2.y + " " +s2.z);
}
catch(Exception x) { System.out.println("exc");}
}
}
class SpecialSerial implements Serializable
{
transient int y=7;
static int z =9;
}
Output:-7 9
0 9
I know that static and transient variable are not serialized then how come after deserialization static varible holds its value whereas transient variable is 0.
please explain