Java序列化知识
内容资料学习整理于网络
Java对象实现序列化有两种方式
- 实现Serializeable接口
- 实现Externalizable接口,重写writeExternal()和readExternal()
Exteranlizable接口。 需要重写writeExternal和readExternal方法,它的效率比Serializable高一些,并且可以决定哪些属性需要序列化(即使是transient修饰的),但是对大量对象,或者重复对象,则效率低。
认识两个关键字:static、transient
static修饰属性
static int num;
静态变量将不会被序列化到磁盘上。
原理:序列化是将对象的信息,从内存上读取出来持久化到磁盘上,永久保存。然而静态变量是存储在类上的,所以序列化并不会持久化静态变量。
transient修饰属性
transient int num;
-
对象实现了Serializeable接口将不会被序列化;
-
对象实现了Externalizable接口可以序列化;