ava中为什么要序列化?什么时候用到序列化?

已解决问题

Java中为什么要序列化?什么时候用到序列化?
10
[ 标签: java , 序列化 , 用到 ]
对序列化的概念以及作用有点模糊,希望有人能给个易懂的答案
╰☆Delete 回答:6 人气:6 解决时间:2009-09-25 18:19
  
满意答案

我们的Java程序必须要运行在Java虚拟机中,那么在同一个Java虚拟机进程中,换句话说是在同一快内存空间里面,什么地方需要用此对象,直接传递该对象的引用就可以了,我们想调某一个对象的方法,通过该对象的引用就可以了,传过去就可以了;

那么我问你,如果是不同的Java虚拟机进程呢?不同的内存空间呢?甚至我北京的计算机的Java虚拟机中的某一个类,需要使用广州的某台计算机上的某个Java对象呢?怎么办?

这是不同的内存空间,你怎么调?

回答人的补充   2009-09-21 01:19
对象的序列化技术,实现的手段是通过Object流,那么我上面所说的需求,你就可以通过对象序列化,将此对象序列化之后得到一些“内容”,通过网络传输这部分“内容”,从广州的服务器上将一个对象序列化之后传过来,到了我北京的服务器上,再通过反序列化,在北京的服务器内存中“造出一个对象出来”,这个对象和你序列化之前广州服务器上的对象是一样的,ok,你可以随便调方法了;
回答人的补充   2009-09-21 01:25

对象的序列化技术在EJB3.0中得到广泛的使用,分布式的架构,远程方法调用(RMI),那肯定要用到对象序列化;

客户端通过JNDI查找到某一个EJB,那么你调了该企业Bean的方法,传近去的这个参数是需要序列化的,该方法的返回值,也是要序列化传过来的;

回答人的补充   2009-09-21 01:29

对象的序列化就是可以将对象序列化之后便于在网络上传输,或者保存到物理介质上;比方说你做了个游戏,你玩了一半你想存盘,那么存盘,就可以简单理解为将当前游戏运行的所有对象序列化保存到硬盘上,然后你再次然后你再次玩的时候,你读取存档,就是反序列化,“再弄出这些对象出来”,继续运行。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java 提供了许多流类,主要分为以下几类: 1. 字节流(Byte Streams):以字节形式读写数据,常用于读写二进制文件和网络数据。包括 `InputStream` 和 `OutputStream`。 2. 字符流(Character Streams):以字符形式读写数据,常用于读写文本文件。包括 `Reader` 和 `Writer`。 3. 缓冲流(Buffered Streams):提供缓冲机制,可以减少磁盘和网络的读写次数,提高效率。包括 `BufferedInputStream`、`BufferedOutputStream`、`BufferedReader` 和 `BufferedWriter`。 4. 对象流(Object Streams):可以将对象序列化和反序列化,常用于对象的存储和网络传输。包括 `ObjectInputStream` 和 `ObjectOutputStream`。 5. 转换流(Conversion Streams):可以将字节流转换成字符流,也可以将字符流转换成字节流。包括 `InputStreamReader` 和 `OutputStreamWriter`。 这些流类之间的关系是比较复杂的,但可以简单概括为: 1. 所有的字节流都继承自 `InputStream` 和 `OutputStream`,所有的字符流都继承自 `Reader` 和 `Writer`。 2. 缓冲流、对象流、转换流都是装饰器流(Decorator Streams),可以对其他流进行装饰,增强其功能。 3. 缓冲流、对象流、转换流都是字节流和字符流之间的桥梁,可以将字节流转换成字符流或者反过来。 在不同的场合需要使用不同的流类。如果要操作二进制文件或者网络数据,就要使用字节流;如果要操作文本文件,就要使用字符流;如果需要缓存数据,就要使用缓冲流;如果要对对象进行序列化和反序列化,就要使用对象流;如果需要进行字符编码转换,就要使用转换流。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值