java中如何实现序列化,有啥意义

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java中如何实现序列化,有啥意义相关的知识,希望对你有一定的参考价值。

java 中实现序列化,只要实现Serializbale这个接口,那么这个类就能序列化了。
序列化就是把对象转化为二进制编码,有两个作用1.用于网络传输。2.可以存储到硬盘中,用来保存。类对象都是在内存中的,当系统关闭后对象就没了,下次启动时重新生成对象,不能保存当时状态。
有序列化,就有反序列化,反序列化就是恢复当时状态的类对象。
参考技术A 实现Serializable接口就行了,这个接口只是一个标记接口,不提供任何方法,Java序列化意义就是把Java在内存中的对象按照一定的格式以字节流的方式传输到别的地方,相当于传输协议,不然就会造成接收端数据错乱。
就像我和你打电话,你只能听懂中文,我硬是用英文跟你说了一大堆,在你看来那些英文就是一堆乱码,
参考技术B 一般需要序列化的都是实体类,只需要实现Serializable接口即可,意义在让java对象能够存到硬盘内存上,同时还能取出来变成一个java对象,底层实现还是IO流,具体就不知道了,小白一个 参考技术C 首先我们要把准备要序列化类,实现 Serializabel接口
例如:我们要Person类里的name和age都序列化
import java.io.Serializable;

public class Person implements Serializable //本类可以序列化
private String name ;
private int age ;

public Person(String name,int age)
this.name = name ;
this.age = age ;

public String toString()
return "姓名:" + this.name + ",年龄" + this.age ;


然后:我们将name和age序列化(也就是把这2个对象转为二进制,统族理解为“打碎”)
package org.lxh.SerDemo;
import java.io.File;
import java.io.FileOutputStream;
import java.io.ObjectOutputStream ;
public class ObjectOutputStreamDemo //序列化
public static void main(String[] args) throws Exception
//序列化后生成指定文件路径
File file = new File("D:" + File.separator + "person.ser") ; ObjectOutputStream oos = null ;
//装饰流(流)
oos = new ObjectOutputStream(new FileOutputStream(file)) ;

//实例化类
Person per = new Person("张三",30) ; oos.writeObject(per) ;//把类对象序列化
oos.close() ;

参考技术D 序列化的过程就是对象写入字节流和从字节流中读取对象。
java对象序列化可以保留一个对象的数据,而且还可以递归保存对象引用的每个对象的数据。可以将整个对象层次写入字节流中,可以保存在文件中或在网络连接上传递。利用对象序列化可以进行对象的“深复制”,即复制对象本身及引用的对象本身。序列化一个对象可能得到整个对象序列。
序列化分为两大部分:序列化和反序列化。序列化是这个过程的第一部分,将数据分解成字节流,以便存储在文件中或在网络上传输。反序列化就是打开字节流并重构对象。对象序列化不仅要将基本数据类型转换成字节表示,有时还要恢复数据。恢复数据要求有恢复数据的对象实例。

以上是关于java中如何实现序列化,有啥意义的主要内容,如果未能解决你的问题,请参考以下文章

什么是序列化,在java中如何实现序列化?

什么是序列化,在java中如何实现序列化?

在从 php 会话注销期间取消设置 cookie 有啥意义?

c#中序列化是啥,怎么用,啥情况下用,不用有啥后果?

TCP和UDP通信有啥区别 如何分别用java实现?

谁知道啥是Java序列化?如何实现序列化?