你懂java.io.Serializable接口吗?

先来说明一下我刚遇到的困惑:在学持久层框架MyBatis的时候,发现老师们总是给实体类实现一个Serializable接口,并告诉我们此接口是一个序列化接口…今天打算去深究一下。

哈哈,打开源码我懵了public interface Serializable { },哈哈哈哈哈嗝~~~我一看注释,嗯,果然是全英文,大概能懂其中一两句,意思很模糊。找了下百度,好,说得我更加云里雾里。然后便来博客上观望观望,果然还是有收获的。

建议先补一些基础知识:
序列化和反序列化(摘自他人总结)

总结了一下:大概是下面这几个意思。

  • (这是一个小姐姐博文的原话,个人觉得比百度上通俗易懂)序列化的过程,就是一个“freeze”的过程,它将一个对象freeze(冷冻)住,然后进行存储,等到再次需要的时候,再将这个对象de-freeze就可以立即使用。
  • 我们为什么看不到序列化的具体操作呐?其实,一个实体类实现了Serializable接口,那么在声明变量的时候,由具体的数据类型代替我们隐式地执行了序列化操作。
  • Serializable接口源码中为什么没有提供任何方法?关于这一点,通过源码上面的注释,其实人家说的比较清晰,个人就是说此接口就相当于一个标志,当一个类实现了此接口,就是告诉JVM此类可被默认的序列化机制序列化。

你可能感兴趣的:(Java知识点)