选择题 23.  有以下一个对象:
    import java.io.Serializable;
    public class DataObject implements Serializable
    {
    private static int i=0;
    private String word=" ";
    public void setWord(String word)
    {
    this.word=word;
    }
    public void setI(int i)
    {
    DataObject.i=i;
    }
    }
    创建一个如下方式的DataObject:
    DataObject object=new DataObject();
    object.setWord("123");
    object.setI(2);
    将此对象序列化,并在另一个JVM中读取文件,进行反序列化,此时读出的DataObject对象中的word和i的值分别是______。
【正确答案】 D
【答案解析】 Java序列化指的是把Java对象转换为字节序列的过程,而Java反序列化指的是把字节序列恢复为Java对象的过程。由于Java语言在序列化的时候不会序列化static变量,因此,上述代码只实例化了变量word,而没有实例化变量i。在反序列化的时候,只能读取到变量word的值,而变量i的值仍然为默认值,该默认值为0。所以,word的值为“123”,i的值为0,选项D正确。