JAVA系列之对象的序列化与反序列化
本文来自:http://www.javaeye.com/topic/130025 1 简介<o:p></o:p> 对象序列化(Serializable)是指将对象转换为字节序列的过程,而反序列化则是根据字节序列恢复对象的过程。<o:p></o:p> 序列化一般用于以下场景:<o:p></o:p> 1. 永久性保存对象,保存对象的字节序列到本地文件中;<o:p></o:p> 2. 通过序列化对象在网络中传递对象;<o:p></o:p> 3. 通过序列化在进程间传递对象。<o:p></o:p> 对象所属的类必须实现Serializable或是Externalizable接口才能被序列化。对实现了Serializable接口的类,其序列化与反序列化采用默认的序列化方式,Externalizable接口是继承了Serializable接口的接口,是对Serializable的扩展,实现了Externalizable接口的类完全自己控制序列化与反序列化行为。<o:p></o:p> Java.io.ObjectOutputStream代表对象输出流,其方法writeObject(Object obj)可以实现对象的序列化,将得到的字节序列写到目标输出流中。Java.io.ObjectInputStream代表对象输入流,其readObject()方法能从源输入流中读取字节序列,将其反序列化为对象,并将其返回。<o:p></o:p> <o:p> </o:p> 2 序列化的几种方式<o:p></o:p> 假设定义了一个Customer类,根据Customer实现序列化方式的不同,可能有以下几种序列化方式:<o:p></o:p> 2.1 实现Serializable,未定义readObject和writeObject方法<o:p></o:p> Ø ObjectOutputStream使用JDK默认方式对Customer对象的非transient的实例变量进行序列化;<o:p></o:p> Ø ObjectInputStream使用JDK默认方式对Customer对象的非transient的实例变量进行反序列化。<o:p></o:p> <o:p> </o:p> 2.2 实现Serializable,并定义了readObject和writeObject方法<o:p></o:p> Ø ObjectOutputStream调用Customer类的writeObject(ObjectOutputStream out)方法对Customer对象的非transient的实例变量进行序列化;<o:p></o:p> Ø ObjectInputStream调用Customer类的readObject(ObjectInputStream in)方法对Customer对象的非transient的实例变量进行反序列化。<o:p></o:p> 2.3 实现Externalizable,定义readExternal和writeExternal方法<o:p></o:p&g
相关文档:
到Sun网站下载自解压安装包jdk-xxxx.bin
安装:
[root@RHEL4 JDK-1.5.0.06]# chmod +x jdk-xxxx.bin
[root@RHEL4 JDK-1.5.0.06]# ./jdk-xxxx.bin
选择安装位置,
J2SDK安装目录: /usr/local/jdk
配置Java环境变量:
在 ~/.bash_profile 里加入下列几行环境变量即可:
export JAVA_HOME=/usr/local/jdk
export PAT ......
File f=new File("DerectoryName");
String []results=f.list();
import java.io.*;
public class listFile
{ &nb ......
鉴于爬虫开发需要一个图片解析功能的函数,到网络上查找了一些jni方面的内容,并做了自己的一些修改,具体如下:
目前java与dll交互的技术主要有3种:jni,jawin和jacob。Jni(Java Native Interface)是sun提供的java与系统中的原生方法交互的技术(在windows\linux系统中,实现java与native method互调)。 ......
上次談過了使用iText產生PDF檔,這次換成來談談使用JExcel來產生EXCEL檔的方法。
首先,先到他的SourceForge主頁面download相關的API檔案。
http://sourceforge.net/projects/jexcelapi/
或
http://www.andykhan ......