hello啊,各位观众姥爷们!!!本baby今天又来了!哈哈哈哈哈嗝
定义:
序列化是将对象的状态转换为可存储或可传输的格式(如字节流、JSON、XML等)的过程。其核心目的是将对象持久化到磁盘、数据库,或通过网络传输到其他系统。
关键点:
示例:
Serializable
接口:public class User implements Serializable {
private String name;
private int age;
// getter/setter...
}
{"name": "张三", "age": 25}
定义:
反序列化是序列化的逆过程,将序列化后的数据(如字节流、JSON)重建为内存中的对象,恢复其原始状态。
关键点:
serialVersionUID
)避免兼容性问题。示例:
try (ObjectInputStream in = new ObjectInputStream(new FileInputStream("user.dat"))) {
User user = (User) in.readObject();
}
// 使用Jackson库
ObjectMapper mapper = new ObjectMapper();
User user = mapper.readValue(jsonString, User.class);
特性 | 序列化 | 反序列化 |
---|---|---|
方向 | 对象 → 字节流/文本 | 字节流/文本 → 对象 |
目的 | 持久化、传输 | 重建对象 |
依赖条件 | 对象需支持序列化接口/协议 | 目标类必须存在且结构兼容 |
常见格式 | 二进制、JSON、XML、Protobuf | 同左 |
性能问题:
版本兼容性:
serialVersionUID
)。安全问题:
readObject
方法被攻击)。跨语言支持:
技术 | 格式 | 性能 | 跨语言 | 可读性 | 典型应用场景 |
---|---|---|---|---|---|
Java原生 | 二进制 | 高 | 仅Java | 差 | Java RMI、缓存 |
JSON | 文本 | 中 | 是 | 优 | REST API、配置文件 |
XML | 文本 | 低 | 是 | 优 | 旧系统、SOAP协议 |
Protobuf | 二进制 | 极高 | 是 | 差 | 微服务、高性能通信 |
Hessian | 二进制 | 高 | 是 | 差 | 跨语言RPC(如Dubbo) |
Avro | 二进制 | 高 | 是 | 差 | Hadoop、大数据存储 |
IDEA ji huo
https://pan.quark.cn/s/4216736c0427
最新大全(唐探)
https://kdocs.cn/l/cqhxNU9I2lLD
deepSeek最全资料包
https://pan.quark.cn/s/2308ac09ed43