序列化
1:对象序列化:将对象转换为字节序列的形式表示,这些字节包含对象包含的数据和信息,便于传输和存储。
2:可序列化和反序列化需要该实体类实现Serializable接口。
transient关键字
意义:让被修饰的成员属性变量不被序列化。具体就是Java的serialization提供了一种持久化对象实例的机制。当持久化对象时,可能有一个特殊的对象数据成员,我们不想用serialization机制来保存它。为了在一个特定对象的一个域上关闭serialization,可以在这个域前加上关键字transient。
1:该成员变量可以被其他字段推出。
2:特殊字段不想被序列化:
例如在java ArrayList源码中,实现了java.io.Serializable接口,其中
transient Object[] elementData;
elementData是一个缓存数组,初始容量为10,假如现在实际有了5个元素,那么在序列化时只需要储存5个元素,数组中的最后五个元素是没有实际意义的,不需要储存。所以设计者将elementData设计为transient,然后在在writeObject方法中手动将其序列化,并且只序列化了实际存储的那些元素,而不是整个数组。
作用:主要是为了节省空间吧。
参考
https://www.cnblogs.com/chenpi/p/6185773.html