最近写项目的时候,发现有一些类要实现Serializable接口,一开始只是粗略的知道实现了Serializable接口,这个类的对象可以被序列化,但我比较轴,想知道这个接口到底有什么作用。
我点开这个接口发现什么方法都没有实现,说明这是一个标识接口
那么他怎么让类对象序列化呢?前面说了 它是标识接口,当有类实现了这个接口,它会通知JVM,告诉JVM来帮这个类对象序列化。
那么,什么是序列化呢,序列化就是将对象的状态转换为字节流的过程。例如,当我们有一个User类,它包含用户的姓名、年龄等信息。如果这个类实现了Serializable接口,我们就可以将User类的对象序列化为字节流并保存起来
转换为字节流有以下用途:
- 数据持久化
- 通过序列化,对象可以被保存到文件系统中。例如,在游戏开发中,玩家的游戏进度(包括角色属性、关卡进度等)可以被序列化为文件存储在本地硬盘上。当玩家下次打开游戏时,这些数据可以从文件中反序列化出来,恢复游戏状态。
- 网络通信
- 在分布式系统或者网络应用程序中,对象需要在不同的计算机之间传输。序列化可以将对象转换为字节流,方便在网络上发送。接收方可以将字节流反序列化回对象。例如,在一个 Web 服务中,服务器端的对象可以被序列化后发送给客户端,客户端再将其反序列化以获取服务器端的数据。