当前位置: 代码迷 >> Java相关 >> java中为什么要序列化
  详细解决方案

java中为什么要序列化

热度:483   发布时间:2010-08-14 22:56:22.0
java中为什么要序列化
提示: 作者被禁止或删除 内容自动屏蔽
2010-08-14 14:56:22
shellingford

等 级:贵宾
威 望:19
帖 子:228
专家分:1348
注 册:2010-8-9
  得分:6 
因为要持久化
对象存在于内存中,而Object ob=new Object();
其实ob只是一个存放了Object对象所在内存地址的变量,在一个JVM中,如果需要用直接用就是了,因为根据内存地址就可以在内存中找到对象。
但是如果在2个JVM中需要传递ob呢?直接把内存地址从一个JVM中传到另一个JVM中?地址可以传递过去,但是没有用,另一个JVM中不可能访问这个JVM的内存。更不用说跨网络传输对象,2台电脑更不可能直接根据内存地址去访问。所以就需要把对象变成二进制数据,将内存中的对象变为二进制数据的过程就叫序列化。二进制数据可以通过各种方法传递(包括网络传输)。等传输完了再进行反序列化,这样就可以达到在不同的JVM中,甚至不同的电脑中传递对象。

PS:见过有数据库直接保存Map对象的,也是用了序列化。
----------------解决方案--------------------------------------------------------
支持ls
简单点理解的话就是:
序列化:将对象的状态保存至存储介质中(如硬盘等),至于有什么用ls说的特详细.
----------------解决方案--------------------------------------------------------
举个很简单的例子,A机器上有一个java服务,我在B机器上调用A的服务,A的结果只有序列化了才能传到B上面去
----------------解决方案--------------------------------------------------------
我觉得最主要的是方便传递,特别是在网络中,就像打电话:声音-->电流-->声音
----------------解决方案--------------------------------------------------------
  相关解决方案