如题所述
java实现对象的序列化的演示如下:
工具:戴尔灵越15、Windows10、JDK1.8、Eclipse4.10。
1、Java中需要序列化的类必须实现Serializable接口,这是一个空接口;为方便后续反序列化操作更顺畅,需要为这个实体类添加一个有默认值的serialVersionUID成员变量;后续步骤会演示如何将这个实体类对象进行序列化。
2、演示将对象序列化并写入到一个本地文件中:首先创建一个类,并声明一个成员方法;通过类ObjectOutputStream创建一个指向本地数据文件的IO流对象;通过调用上述对象的writeObject将对象的序列化数据写入到目标文件中;调用流对象的flush方法将缓冲区数据写出去;catch块处理好各种异常;finally块将IO流对象关闭。
3、编写并运行本地测试主方法:创建一个实体类对象;调用刚刚编写的方法将实体类对象的序列化数据写入到文件中。
4、查看本地文件,图示,其存储的就是实体类对象的序列化数据。
为什么需要序列化
Java对象是运行在JVM的堆内存中的,如果JVM停止后,它的生命也就戛然而止。
如果想在JVM停止后,把这些对象保存到磁盘或者通过网络传输到另一远程机器,磁盘这些硬件可不认识Java对象,它们只认识二进制这些机器语言,所以我们就要把这些对象转化为字节数组,这个过程就是序列化。
打个比喻,作为大城市漂泊的码农,搬家是常态。当我们搬书桌时,桌子太大了就通不过比较小的门,因此我们需要把它拆开再搬过去,这个拆桌子的过程就是序列化。而我们把书桌复原回来(安装)的过程就是反序列化啦。