JAVA类的序列化

转载 2012年03月27日 16:40:04

1.serialVersionUID

serialVersionUID这个长整形的作用是保持对象序列化的兼容性。

例如:当A类的实例B被序列化到文件上去以后,A类突然增加了一个属性,这个时候进行反序列化,会出现类的类型不整合的错误;

如果A类定义了serializableUID的话,则反序列化可以成功,B对象可以从文件直接读到内存当中去。

2.序列化和反序列化过程

   序列化: ObjectOutputStream stream = new ObjectOutputStream(new FileOutputStream("fileName"));stream.writeObject(new Object());

   反序列化: ObjectInputStream stream = new ObjectInputStream(new FileInputStream("fileName"));ObjectA object = (ObjectA)stream.readObject();

3.xstream序列化JAVA类

XStream 有三个突出的特点:

  1. XStream 不关心序列化/逆序列化的类的字段的可见性。
  2. 序列化/逆序列化类的字段不需要 getter 和 setter 方法。
  3. 序列化/逆序列化的类不需要有默认构造函数。
  4. XStream 序列化的类不需要实现 Serializable 接口。 

序列化对象:

import com.thoughtworks.xstream.*;

XStream xs = new XStream(new DomDriver());

Object fs = new Object();

FileOutputStream fs = new FileOutputStream("c:/temp/employeedata.txt");

xs.toXML(e, fs);

 

发序列化对象

import com.thoughtworks.xstream.*;

XStream xs = new XStream(new DomDriver());

Object fs = null;

FileInputStream fis = new FileInputStream("c:/temp/employeedata.txt");

xs.fromXML(fis, e);

深入理解Java中的序列化(Serializable)

深入理解Java中的序列化(Serializable)
  • leixingbang1989
  • leixingbang1989
  • 2016年01月21日 18:34
  • 3902

java 为什么序列化?为什么不是所有的类序列化?

 为什么JAVA要实现对象序列化 简单来说序列化就是一种用来处理对象流的机制,所谓对象流也就是将对象的内容进行流化,流的概念这里不用多说(就是I/O),我们可以对流化后的对象进行读写操作,也可将流化后...
  • kky2010_110
  • kky2010_110
  • 2009年11月20日 10:15
  • 5730

Java序列化的几种方式以及序列化的作用(顶)

本文着重讲解一下Java序列化的相关内容。 如果对Java序列化感兴趣的同学可以研究一下。 一.Java序列化的作用    有的时候我们想要把一个Java对象变成字节流的形式传出去,有的时候我们...
  • a137268431
  • a137268431
  • 2015年10月16日 18:15
  • 2624

java持久化类为什么要实现序列化

之前听老师讲过在Java里面,类有时候要实现序列化,也就是和Serializable接口相关的东西,但感觉当时好抽象忘了,上网上找了好久,看到了一篇博文。 =============...
  • qq_25210899
  • qq_25210899
  • 2016年09月28日 16:26
  • 1579

java 类的序列化和持久化理解

什么是序列化?把Java对象转换为字节序列的过程称为对象的序列化。把字节序列恢复为Java对象的过程称为对象的反序列化。 实现java.io.Serializable接口的类对象可以转换成字节流(序列...
  • qq_21989939
  • qq_21989939
  • 2015年07月27日 16:27
  • 785

几种Java序列化方式的实现

0、前言 本文主要对几种常见Java序列化方式进行实现。包括Java原生以流的方法进行的序列化、Json序列化、FastJson序列化、Protobuff序列化。 1、Java原生序列化 Ja...
  • pistolove
  • pistolove
  • 2017年03月04日 11:01
  • 4197

用JAVA实现一种排序,JAVA类实现序列化的方法(二种)? 如在COLLECTION框架中,实现比较要实现什么样的接

importjava.util.*; public class test{ ArrayList al; public test(int num, intmod) { al = ...
  • IT_COOKIE_SAM
  • IT_COOKIE_SAM
  • 2016年12月13日 10:56
  • 1035

Java中序列化的serialVersionUID作用

Java序列化是将一个对象编码成一个字节流,反序列化将字节流编码转换成一个对象。 序列化是Java中实现持久化存储的一种方法;为数据传输提供了线路级对象表示法。 Java的序列化机制是通过在运行...
  • z69183787
  • z69183787
  • 2015年07月10日 19:44
  • 3431

Java序列化的原理

转自:http://jianleixing.iteye.com/blog/2015495 Java序列化的原理 前沿  欢迎进入JDK源码阅读之序列化专题!java序列化从JDK1....
  • tomisaboy
  • tomisaboy
  • 2016年06月01日 09:36
  • 2014

Java序列化的几种方式以及序列化的作用

文章转载自: 本文着重讲解一下Java序列化的相关内容。如果对Java序列化感兴趣的同学可以研究一下。一.Java序列化的作用有的时候我们想要把一个Java对象变成字节流的形式传出去,有的时候我们想...
  • u012554102
  • u012554102
  • 2016年07月14日 00:00
  • 8430
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:JAVA类的序列化
举报原因:
原因补充:

(最多只允许输入30个字)