反序列化的过程

  • 反序列化的过程:
    1. 读取二进制文件;
    2. 读取序列化的对象,读取过程中虚拟机会在当前工程当中寻找序列化的目标类(反序列化类):
      • 如果没找到报ClassNotFoundException;
      • 如果找到了目标类(立即加载该类),但是反序列化类的ID和序列化类的ID不同,则报InvalidClassException;
      • 如果类全限定名相同,且序列化ID相同,则对象读取成功,默认为Object类型
    3. 找到合适的类(全限定名相同,且序列化ID相同),然后进行强转
      • 此强转在代码中由开发人员显式写明;
      • 如果强转类,和虚拟机找到的类在语法上不一致,则报ClassCastException
原文地址:https://www.cnblogs.com/InformationGod/p/9771529.html