这篇文章总结了网上对Serializable接口的解释以及个人的理解
Serializable接口是什么?
它是一个对象序列化的接口,一个类只有实现了Serializable接口,它的对象才能被序列化。
序列化是什么?
序列化是将对象状态转换为可保持或传输的格式的过程。与序列化相对的是反序列化,它将流转换成对象。这两个过程结合起来,可以轻松地存储和传输数据。也就是说其实序列化,他是完整的保存了某一状态下的对象信息,是一个整体,而不是零散的,序列化的过程就是一个冰冻的过程,将一个对象冻住,然后再放到冰箱中存储,等到在次需要使用时再将这个对象解冻就可以立即使用了。
为什么非要序列化才能存储数据
便于数据传输,尤其是远程调用的时候。当我们需要把对象的状态信息通过网络传输或者需要将对象状态信息持久化,以便将来使用时都需要把对象进行序列化。 进入Serializable接口中里边没有内容,可以理解为一个标识接口,Serializable接口就是java提供用来进行高效率的异地共享实例对象的机制,实现这个接口即可。
什么时候一定要序列化呢
我们不序列化也能进行数据存储,那为什么非得要序列化呢?大家知道序列化是把对象进行流化存储,我们有时候感觉自己在项目中并没有进行序列化操作也将数据保存好了,这时看当前的类是否需要远程调用,这就是Serializable的作用。
eg.