Java基础学习总结——Java对象的序列化和反序列化

一、序列化和反序列化的概念

把对象转换为字节序列的过程称为对象的序列化。
把字节序列恢复为对象的过程称为对象的反序列化。
  对象的序列化主要有两种用途:
  1) 把对象的字节序列永久地保存到硬盘上,通常存放在一个文件中;
  2) 在网络上传送对象的字节序列。

  在很多应用中,需要对某些对象进行序列化,让它们离开内存空间,入住物理硬盘,以便长期保存。比如最常见的是Web服务器中的Session对象,当有 10万用户并发访问,就有可能出现10万个Session对象,内存可能吃不消,于是Web容器就会把一些seesion先序列化到硬盘中,等要用了,再把保存在硬盘中的对象还原到内存中。

  当两个进程在进行远程通信时,彼此可以发送各种类型的数据。无论是何种类型的数据,都会以二进制序列的形式在网络上传送。发送方需要把这个Java对象转换为字节序列,才能在网络上传送;接收方则需要把字节序列再恢复为Java对象。

二、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()方法读取对象。

对象序列化和反序列范例:

  定义一个Person类,实现Serializable接口

import java.io.Serializable;

/**
* <p>ClassName: Person<p>
* <p>Description:测试对象序列化和反序列化<p>
* @author xudp
* @version 1.0 V
* @createTime 2014-6-9 下午02:33:25
*/
public class Person implements Serializable { /**
* 序列化ID
*/
private static final long serialVersionUID = -5809782578272943999L;
private int age;
private String name;
private String sex; public int getAge() {
return age;
} public String getName() {
return name;
} public String getSex() {
return sex;
} public void setAge(int age) {
this.age = age;
} public void setName(String name) {
this.name = name;
} public void setSex(String sex) {
this.sex = sex;
}
}

序列化和反序列化Person类对象

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.text.MessageFormat; /**
* <p>ClassName: TestObjSerializeAndDeserialize<p>
* <p>Description: 测试对象的序列化和反序列<p>
* @author xudp
* @version 1.0 V
* @createTime 2014-6-9 下午03:17:25
*/
public class TestObjSerializeAndDeserialize { public static void main(String[] args) throws Exception {
SerializePerson();//序列化Person对象
Person p = DeserializePerson();//反序列Perons对象
System.out.println(MessageFormat.format("name={0},age={1},sex={2}",
p.getName(), p.getAge(), p.getSex()));
} /**
* MethodName: SerializePerson
* Description: 序列化Person对象
* @author xudp
* @throws FileNotFoundException
* @throws IOException
*/
private static void SerializePerson() throws FileNotFoundException,
IOException {
Person person = new Person();
person.setName("gacl");
person.setAge(25);
person.setSex("男");
// ObjectOutputStream 对象输出流,将Person对象存储到E盘的Person.txt文件中,完成对Person对象的序列化操作
ObjectOutputStream oo = new ObjectOutputStream(new FileOutputStream(
new File("E:/Person.txt")));
oo.writeObject(person);
System.out.println("Person对象序列化成功!");
oo.close();
} /**
* MethodName: DeserializePerson
* Description: 反序列Perons对象
* @author xudp
* @return
* @throws Exception
* @throws IOException
*/
private static Person DeserializePerson() throws Exception, IOException {
ObjectInputStream ois = new ObjectInputStream(new FileInputStream(
new File("E:/Person.txt")));
Person person = (Person) ois.readObject();
System.out.println("Person对象反序列化成功!");
return person;
} }

代码运行结果如下:

序列化Person成功后在E盘生成了一个Person.txt文件,而反序列化Person是读取E盘的Person.txt后生成了一个Person对象

三、serialVersionUID的作用

  s​e​r​i​a​l​V​e​r​s​i​o​n​U​I​D​:​ ​字​面​意​思​上​是​序​列​化​的​版​本​号​,凡是实现Serializable接口的类都有一个表示序列化版本标识符的静态变量

private static final long serialVersionUID

实现Serializable接口的类如果类中没有添加serialVersionUID,那么就会出现如下的警告提示

aaarticlea/png;base64,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">

用鼠标点击就会弹出生成serialVersionUID的对话框,如下图所示:

aaarticlea/png;base64,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">

serialVersionUID有两种生成方式:

  采用这种方式生成的serialVersionUID是1L,例如:

private static final long serialVersionUID = 1L;
采用这种方式生成的serialVersionUID是根据类名,接口名,方法和属性等来生成的,例如:
private static final long serialVersionUID = 7592930394427200495L;

添加了之后就不会出现那个警告提示了,如下所示:

扯了那么多,那么serialVersionUID(序列化版本号)到底有什么用呢,我们用如下的例子来说明一下serialVersionUID的作用,看下面的代码:

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable; public class TestSerialversionUID { public static void main(String[] args) throws Exception {
SerializeCustomer();// 序列化Customer对象
Customer customer = DeserializeCustomer();// 反序列Customer对象
System.out.println(customer);
} /**
* MethodName: SerializeCustomer
* Description: 序列化Customer对象
* @author xudp
* @throws FileNotFoundException
* @throws IOException
*/
private static void SerializeCustomer() throws FileNotFoundException,
IOException {
Customer customer = new Customer("gacl",25);
// ObjectOutputStream 对象输出流
ObjectOutputStream oo = new ObjectOutputStream(new FileOutputStream(
new File("E:/Customer.txt")));
oo.writeObject(customer);
System.out.println("Customer对象序列化成功!");
oo.close();
} /**
* MethodName: DeserializeCustomer
* Description: 反序列Customer对象
* @author xudp
* @return
* @throws Exception
* @throws IOException
*/
private static Customer DeserializeCustomer() throws Exception, IOException {
ObjectInputStream ois = new ObjectInputStream(new FileInputStream(
new File("E:/Customer.txt")));
Customer customer = (Customer) ois.readObject();
System.out.println("Customer对象反序列化成功!");
return customer;
}
} /**
* <p>ClassName: Customer<p>
* <p>Description: Customer实现了Serializable接口,可以被序列化<p>
* @author xudp
* @version 1.0 V
* @createTime 2014-6-9 下午04:20:17
*/
class Customer implements Serializable {
//Customer类中没有定义serialVersionUID
private String name;
private int age; public Customer(String name, int age) {
this.name = name;
this.age = age;
} /*
* @MethodName toString
* @Description 重写Object类的toString()方法
* @author xudp
* @return string
* @see java.lang.Object#toString()
*/
@Override
public String toString() {
return "name=" + name + ", age=" + age;
}
}

运行结果:

序列化和反序列化都成功了。

下面我们修改一下Customer类,添加多一个sex属性,如下:

class Customer implements Serializable {
//Customer类中没有定义serialVersionUID
private String name;
private int age; //新添加的sex属性
private String sex; public Customer(String name, int age) {
this.name = name;
this.age = age;
} public Customer(String name, int age,String sex) {
this.name = name;
this.age = age;
this.sex = sex;
} /*
* @MethodName toString
* @Description 重写Object类的toString()方法
* @author xudp
* @return string
* @see java.lang.Object#toString()
*/
@Override
public String toString() {
return "name=" + name + ", age=" + age;
}
}

然后执行反序列操作,此时就会抛出如下的异常信息:

1 Exception in thread "main" java.io.InvalidClassException: Customer;
2 local class incompatible:
3 stream classdesc serialVersionUID = -88175599799432325,
4 local class serialVersionUID = -5182532647273106745

意思就是说,文件流中的class和classpath中的class,也就是修改过后的class,不兼容了,处于安全机制考虑,程序抛出了错误,并且拒绝载入。那么如果我们真的有需求要在序列化后添加一个字段或者方法呢?应该怎么办?那就是自己去指定serialVersionUID。在TestSerialversionUID例子中,没有指定Customer类的serialVersionUID的,那么java编译器会自动给这个class进行一个摘要算法,类似于指纹算法,只要这个文件 多一个空格,得到的UID就会截然不同的,可以保证在这么多类中,这个编号是唯一的。所以,添加了一个字段后,由于没有显指定 serialVersionUID,编译器又为我们生成了一个UID,当然和前面保存在文件中的那个不会一样了,于是就出现了2个序列化版本号不一致的错误。因此,只要我们自己指定了serialVersionUID,就可以在序列化后,去添加一个字段,或者方法,而不会影响到后期的还原,还原后的对象照样可以使用,而且还多了方法或者属性可以用。

  下面继续修改Customer类,给Customer指定一个serialVersionUID,修改后的代码如下:

class Customer implements Serializable {
/**
* Customer类中定义的serialVersionUID(序列化版本号)
*/
private static final long serialVersionUID = -5182532647273106745L;
private String name;
private int age; //新添加的sex属性
//private String sex; public Customer(String name, int age) {
this.name = name;
this.age = age;
} /*public Customer(String name, int age,String sex) {
this.name = name;
this.age = age;
this.sex = sex;
}*/ /*
* @MethodName toString
* @Description 重写Object类的toString()方法
* @author xudp
* @return string
* @see java.lang.Object#toString()
*/
@Override
public String toString() {
return "name=" + name + ", age=" + age;
}
}

 重新执行序列化操作,将Customer对象序列化到本地硬盘的Customer.txt文件存储,然后修改Customer类,添加sex属性,修改后的Customer类代码如下:

class Customer implements Serializable {
/**
* Customer类中定义的serialVersionUID(序列化版本号)
*/
private static final long serialVersionUID = -5182532647273106745L;
private String name;
private int age; //新添加的sex属性
private String sex; public Customer(String name, int age) {
this.name = name;
this.age = age;
} public Customer(String name, int age,String sex) {
this.name = name;
this.age = age;
this.sex = sex;
} /*
* @MethodName toString
* @Description 重写Object类的toString()方法
* @author xudp
* @return string
* @see java.lang.Object#toString()
*/
@Override
public String toString() {
return "name=" + name + ", age=" + age;
}
}

执行反序列操作,这次就可以反序列成功了,如下所示:

四、serialVersionUID的取值

  serialVersionUID的取值是Java运行时环境根据类的内部细节自动生成的。如果对类的源代码作了修改,再重新编译,新生成的类文件的serialVersionUID的取值有可能也会发生变化。
  类的serialVersionUID的默认值完全依赖于Java编译器的实现,对于同一个类,用不同的Java编译器编译,有可能会导致不同的 serialVersionUID,也有可能相同。为了提高serialVersionUID的独立性和确定性,强烈建议在一个可序列化类中显示的定义serialVersionUID,为它赋予明确的值。

  显式地定义serialVersionUID有两种用途:
    1、 在某些场合,希望类的不同版本对序列化兼容,因此需要确保类的不同版本具有相同的serialVersionUID;
    2、 在某些场合,不希望类的不同版本对序列化兼容,因此需要确保类的不同版本具有不同的serialVersionUID。

转 http://www.cnblogs.com/xdp-gacl/p/3777987.html

Java对象的序列化和反序列化[转]的更多相关文章

  1. Java对象的序列化与反序列化

    序列化与反序列化 序列化 (Serialization)是将对象的状态信息转换为可以存储或传输的形式的过程.一般将一个对象存储至一个储存媒介,例如档案或是记亿体缓冲等.在网络传输过程中,可以是字节或是 ...

  2. Java对象的序列化与反序列化-Json篇

    说到Java对象的序列化与反序列化,我们首先想到的应该是Java的Serializable接口,这玩意在两个系统之间的DTO对象里面可能会用到,用于系统之间的数据传输.或者在RPC(远程方法调用)时可 ...

  3. 一文带你全面了解java对象的序列化和反序列化

    摘要:这篇文章主要给大家介绍了关于java中对象的序列化与反序列化的相关内容,文中通过详细示例代码介绍,希望能对大家有所帮助. 本文分享自华为云社区<java中什么是序列化和反序列化?>, ...

  4. Java基础学习总结——Java对象的序列化和反序列化

    一.序列化和反序列化的概念 把对象转换为字节序列的过程称为对象的序列化. 把字节序列恢复为对象的过程称为对象的反序列化. 对象的序列化主要有两种用途: 1) 把对象的字节序列永久地保存到硬盘上,通常存 ...

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

    对象的序列化是指将对象转换为字节序列的过程 对象的反序列化是指将字节序列恢复对象的过程 主要有两种用途: 1.把对象的字节序列永久地保存在硬盘上,通常放在一个文件中. 2.在网络上传输对象的字节序列. ...

  6. java对象的序列化与反序列化使用

    1.Java序列化与反序列化  Java序列化是指把Java对象转换为字节序列的过程:而Java反序列化是指把字节序列恢复为Java对象的过程. 2.为什么需要序列化与反序列化 我们知道,当两个进程进 ...

  7. Java对象的序列化和反序列化实践

    2013-12-20 14:58 对象序列化的目标是将对象保存在磁盘中,或者允许在网络中直接传输对象.对象序列化机制允许把内存中的Java对象转换成平台无关的二进制流,从而允许把这种二进制流持久的保存 ...

  8. Java基础学习总结--Java对象的序列化和反序列化

    一.序列化和反序列化的概念 把对象转换成字节序列的过程称之为对象的序列化 把字节序列恢复为对象的过程称之为对象的反序列化 对象序列化的主要用途: 1)把对象的字节序列永久的保存到硬盘上,通常放在一个文 ...

  9. 深入理解Java对象的序列化与反序列化的应用

    当两个进程在进行远程通信时,彼此可以发送各种类型的数据.无论是何种类型的数据,都会以二进制序列的形式在网络上传送.发送方需要把这个Java对象转换为字节序列,才能在网络上传送:接收方则需要把字节序列再 ...

随机推荐

  1. struts2实现文件上传

    Struts2中实现简单的文件上传功能: 第一步:将如下文件引入到WEB_INF/lib目录下面,对应的jar文件可自行下载 第二步:在包test.struts2下建立类UploadFile pack ...

  2. socket.io的抽象实现:engine.io

    engine.io是一个socket.io的抽象实现,作为socket.io的服务器和浏览器之间交换的数据的传输层.它不会取代Socket.IO,它只是抽象出固有的复杂性,支持多种浏览器,设备和网络的 ...

  3. HDU 5821 Ball (贪心)

    Ball 题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5821 Description ZZX has a sequence of boxes nu ...

  4. HDU 2425 DNA repair (AC自动机+DP)

    DNA repair Time Limit: 5000/2000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total ...

  5. codeforces 651A Joysticks

    A. Joysticks time limit per test 1 second memory limit per test 256 megabytes input standard input o ...

  6. 查杀oracle锁表

    ()锁表查询的代码有以下的形式: select count(*) from v$locked_object; select * from v$locked_object; ()查看哪个表被锁 sele ...

  7. Running Solr with Maven

    Solr is an open source search server which is built by using the indexing and search capabilities of ...

  8. jquery validation ajax 验证

    <link href="${base}/res/basic/css/jquery/validationEngine/validationEngine.jquery.css" ...

  9. ASP导出Word带页眉页脚,中文不乱码

    关键代码: <% Response.Clear() Response.CodePage= Response.Charset="UTF-8" Response.ContentT ...

  10. The plot Function in matlab

    from http://pundit.pratt.duke.edu/wiki/MATLAB:Plotting The plot Function The plot function is used t ...