码迷,mamicode.com
首页 > 其他好文 > 详细

Serializable序列化

时间:2018-02-10 17:08:03      阅读:120      评论:0      收藏:0      [点我收藏+]

标签:自己的   style   计算机   ott   虚拟内存   反序   解释   gpo   编程   

转:http://blog.csdn.net/u011568312/article/details/57611440

序列化:对象的寿命通常随着生成该对象的程序的终止而终止,有时候需要把在内存中的各种对象的状态(也就是实例变量,不是方法)保存下来,并且可以在需要时再将对象恢复。虽然你可以用你自己的各种各样的方法来保存对象的状态,但是Java给你提供一种应该比你自己的好的保存对象状态的机制,那就是序列化。

总结:Java 序列化技术可以使你将一个对象的状态写入一个Byte 流里(系列化),并且可以从其它地方把该Byte 流里的数据读出来(反序列化)。

想把的内存中的对象状态保存到一个文件中或者数据库中时候

想把对象通过网络进行传播的时候

一个对象序列化的接口,一个类只有实现了Serializable接口,它的对象才是可序列化的。因此如果要序列化某些类的对象,这些类就必须实现Serializable接口。而实际上,Serializable是一个空接口,没有什么具体内容,它的目的只是简单的标识一个类的对象可以被序列化。

 

什么情况下需要序列化

 

a)当你想把的内存中的对象写入到硬盘的时候;

 

b)当你想用套接字在网络上传送对象的时候;

 

c)当你想通过RMI传输对象的时候;

 

再稍微解释一下:a)比如说你的内存不够用了,那计算机就要将内存里面的一部分对象暂时的保存到硬盘中,等到要用的时候再读入到内存中,硬盘的那部分存储空间就是所谓的虚拟内存。在比如过你要将某个特定的对象保存到文件中,我隔几天在把它拿出来用,那么这时候就要实现Serializable接口;

 

b)在进行java的Socket编程的时候,你有时候可能要传输某一类的对象,那么也就要实现Serializable接口;最常见的你传输一个字符串,它是JDK里面的类,也实现了Serializable接口,所以可以在网络上传输。

 

c)如果要通过远程的方法调用(RMI)去调用一个远程对象的方法,如在计算机A中调用另一台计算机B的对象的方法,那么你需要通过JNDI服务获取计算机B目标对象的引用,将对象从B传送到A,就需要实现序列化接口。

Serializable序列化

标签:自己的   style   计算机   ott   虚拟内存   反序   解释   gpo   编程   

原文地址:https://www.cnblogs.com/wangjianly/p/8438916.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!