在Java程序中,一个自定义类MyObject实现了Serializable接口,并且包含一个transient修饰的实例变量 'data',类型为int。如果一个MyObject对象通过ObjectOutputStream被写入到一个文件中,随后又通过ObjectInputStream从该文件中读取,那么下列关于读取后该对象的描述正确的是:

答案解析

此题考察Java序列化机制中transient关键字的作用。A选项错误,因为transient关键字表示该变量不会被序列化,写入文件时该变量的值不会被保存;B选项正确,transient修饰的变量不会被序列化,读取时会使用该类型的默认值进行初始化,对于int类型,默认值为0;C选项错误,即使使用反射修改了变量值,在序列化过程中,transient变量依然会被忽略;D选项错误,因为该类实现了Serializable接口,没有显式抛出异常,且读取的仅仅是transient修饰变量没有被序列化的值而已。
正确答案:B
随机推荐
开始刷题