易截截图软件、单文件、免安装、纯绿色、仅160KB

Java对象的序列化和反序列化

当两个进程在进行远程通信时,彼此可以发送各种类型的数据。无论是何种类型的数据,都会以二进制序列的形式在网络上传送。发送方需要把这个java对象转换为字节序列,即java对象序列号,才能在网络上传送;接收方则需要把字节序列再恢复为Java对象,即反序列化。
  把Java对象转换为字节序列的过程称为对象的序列化。
  把字节序列恢复为Java对象的过程称为对象的反序列化。
  对象的序列化主要有两种用途:
  1) 把对象的字节序列永久地保存到硬盘上,通常存放在一个文件中;
  2) 在网络上传送对象的字节序列。
  一. JDK类库中的序列化API
  java.io.ObjectOutputStream代表对象输出流,它的writeObject(Object obj)方法可对参数指定的obj对象进行序列化,把得到的字节序列写到一个目标输出流中。
  java.io.ObjectInputStream代表对象输入流,它的readObject()方法从一个源输入流中读取字节序列,再把它们反序列化为一个对象,并将其返回。、
  只有实现了Serializable和Externalizable接口的类的对象才能被序列化。Externalizable接口继承自Serializable接口,实现Externalizable接口的类完全由自身来控制序列化的行为,而仅实现Serializable接口的类可以采用默认的序列化方式 。
  对象序列化包括如下步骤:
  1) 创建一个对象输出流,它可以包装一个其他类型的目标输出流,如文件输出流;
  2) 通过对象输出流的writeObject()方法写对象。
  对象反序列化的步骤如下:
  1) 创建一个对象输入流,它可以包装一个其他类型的源输入流,如文件输入流;
  2) 通过对象输入流的readObject()方法读取对象。
  下面让我们来看一个对应的例子,类的内容如下:
  import java.io.*;
  import java.util.Date;
  /**
  * 对象的序列化和反序列化测试类.
  * @author AmigoXiemailto:xiexingxing1121@126.com">AmigoXie>
  * @version 1.0
  * Creation date: 2007-9-15 - 下午21:45:48
  */
  public class ObjectSaver {
  /**
  * @param args
  * @author AmigoXiemailto:xiexingxing1121@126.com">AmigoXie>
  * Creation date: 2007-9-15 - 下午21:45:37
  */
  public static void main(String[] args) throws Exception {
  ObjectOutputStream out = new ObjectOutputStream
  (new FileOutputStream("D:""objectFile.obj


相关文档:

Java语言程序设计案例教程174页8.2.1我的解答

public class MainThread1{
 public static void main(String args[]){
  MinorThread m1=new MinorThread(1);
  MinorThread m2=new MinorThread(2);
  new Thread(m1).start();
  new Thread(m2).start();
  
  
 }
}
class MinorThrea ......

本文将告诉你学习Java需要达到的30个目标

本文将告诉你学习Java需要达到的30个目标,希望能够对你的学习有所帮助。对比一下自己,你已经掌握了这30条中的多少条了呢?
  1.你需要精通面向对象分析与设计(OOA/OOD)、涉及模式(GOF,J2EEDP)以及综合模式。你应该十分了解UML,尤其是class,object,interaction以及statediagrams。
  2.你需要学习JAVA语言的基础 ......

深入研究java对String字符串对象的创建以及管理

Constant Pool常量池的概念:
在讲到String的一些特殊情况时,总会提到String Pool或者Constant Pool,但是我想很多人都不太
明白Constant Pool到底是个怎么样的东西,运行的时候存储在哪里,所以在这里先说一下Constant Pool的内容.
String Pool是对应于在Constant Pool中存储String常量的区域.习惯称为String Pool,也有人称 ......

Java与Flex区别二:整数除法、变量定义、数组取值

在Java里面,两个整数相除得到是个整数,比如 int a = 28;
int b = 10;
a/b == 2; //true
在Flex中,上面Java代码将返回同样的结果。值得注意的是,如果使用的是Number类,则有所不一样了。下面的代码中,result的值为2.8。如果你不小心把返回的结果作为数组的索引去取值的话,那么什么结果都没有。
var a:Number = 28 ......

JAVA的字符串拼接与性能

原帖地址:
http://coolshell.cn/?p=2235
----------------我是紫苑最萌的分割线XD--------------
概述:
本文主要研究的是JAVA的字符串拼接的性能,原文中的测试代码在功能上并不等价,导致concat的测
试意义不大。不过原作者在评论栏给了新的concat结果,如果有兴趣的同学建议自己修改代码测试。
原文出处:http://ww ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号