Java面试宝典-java基础07
61、什么是 java 序列化?什么情况下需要序列化?
序列化就是把内存里面的对象转化为字节流,以便用来实现存储或者传输。
序列化的前提是保证通信双方对于对象的可识别性,所以很多时候,我们会把对象先转化为通用的解析格式,比如json、xml等。然后再把他们转化为数据流进行网络传输,从而实现跨平台和跨语言的可识别性。
序列化是通过实现serializable接口,该接口没有需要实现的方法,implement Serializable只是为了标注该对象是可被序列化的。反序列化就是根据从文件或者网络上获取到的对象的字节流,根据字节流里面保存的对象描述信息和状态。
62、序列化使用场景有哪些?
- 像银行卡、密码这些字段不能被序列化;
- 将对象存储到文件中时进行序列化,从文件中读取对象时需要反序列化;
- 分布式传递对象,或者网络传输,需要序列化;
- 存入缓存数据库(如 Redis)时需要用到序列化,将对象从缓存数据库中读取出来需要反序列