java中序列化与反序列化的问题

java序列化是将java对象转换为字节序列的过程,变成计算机能够存储的二进制序列

      反序列化是将字节序列恢复成java对象的过程

1.当两个Java进程进行通信时,能否实现进程间的对象传送呢?答案是可以的。如何做到呢?这就需要Java序列化与反序列化了。换句话说,一方面,发送方需要把这个Java对象转换为字节序列,然后在网络上传送;另一方面,接收方需要从字节序列中恢复出Java对象。

2.因此序列化则具有两大优点:一是实现了数据的持久化,通过序列化可以把数据永久地保存到硬盘上(通常存放在文件里)。

                                            二是,利用序列化实现远程通信,即在网络上传送对象的字节序列。

3.如何实现Java序列化与反序列化

1)JDK类库中序列化API

java.io.ObjectOutputStream:表示对象输出流

它的writeObject(Object obj)方法可以对参数指定的obj对象进行序列化,把得到的字节序列写到一个目标输出流中。

java.io.ObjectInputStream:表示对象输入流

它的readObject()方法源输入流中读取字节序列,再把它们反序列化成为一个对象,并将其返回。

2)实现序列化的要求

只有实现了Serializable或Externalizable接口的类的对象才能被序列化,否则抛出异常。

猜你喜欢

转载自blog.csdn.net/Griezmann_7/article/details/82942277