1.将对象的状态保存到存储媒体当中,便于在以后重新创建出完全相同的副本。
2.将对象从一个应用程序发送到另外一个应用程序当中
实现Serializable接口的作用就是可以序列化,将对象存到字节流,然后可以恢复(Java的“对象的序列化”能让你将一个实现了Serializable接口的对象转换成一组byte,这样以后要用这个对象的时候你就能把这些byte的数据恢复出来,并据此重新构建哪个对象了。这一点甚至在跨网络的环境下也是如此,这意味着序列化机制能自动补偿操作系统方面的差异。也就是说,你可以在windows机器上创建一个对象,序列化之后,再通过网络传到Unix机器上,然后在那里重建。你不用担心在不同的平台上数据是怎么样表示的,byte顺序是怎样的,或则别的细节),所以如果你的对象没有实现序列化,怎样才能进行网络传输呢?要想网络传输就需要转化为字节流,所以我们在分布式项目当中,就需要实现序列化。如果不需要分布式应用,就可以不用实现序列化