1.为什么要实现Serializable?
序列化:把对象转换为字节序列的过程称为对象的序列化.
反序列化:把字节序列恢复为对象的过程称为对象的反序列化.
只要我们对内存中的对象进行持久化或网络传输, 这个时候都需要序列化和反序列化
1)对象持久化到磁盘
2)与浏览器交互:其实是用json交互的,json字符串是String,源码实现了Serializable.
3)对象持久化到数据库:其实是将对象中的具体属性持久化,而每一个属性类型都实现了Serializable
2.为什么还要显示指定serialVersionUID的值?
如果不指定,序列化时jvm会自动同属性一起生成一个,反序列化时再来一次,如果期间修改了属性,那么反序列化生成的uid将不同于序列化时,会报错。
3.Java序列化的其他特性
被transient关键字修饰的属性不会被序列化, static属性也不会被序列化.(serialVersionUID也是static的,他也没有进行序列化,是因为是将它的值赋值给自动生成的UID了)
- —— 定期更新有质量的知识点,欢迎跟踪
网友评论