Java 序列化(Java Serialization,基于 java.io.Serializable)在实际项目中坑非常多,下面按「常见程度 + 危害性」系统性总结:
readObject() / 构造函数逻辑✅ 建议:
ObjectInputFilter)Serializable✅ 建议:
serialVersionUID 不一致private static final long serialVersionUID = 1L;
InvalidClassException✅ 建议:
✅ 建议:
✅ 建议:
readResolve()
✅ 解决:
private Object readResolve() {
return INSTANCE;
}
static int count;
transient 使用不当transient
readObject() 自定义逻辑易出错private void readObject(ObjectInputStream s) {
s.defaultReadObject();
// 容易忘记校验
}
❌ 常见错误:
✅ 必须用 DTO
| 场景 | 推荐 |
|---|---|
| RPC | Protobuf / Kryo |
| HTTP | JSON |
| 缓存 | JSON / MsgPack |
| 本地持久化 | JSON / SQLite |
Java 原生序列化:能不用就不用,用了必踩坑。
如果你愿意,我可以:
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。