首页 > 代码库 > JAVA序列化的作用

JAVA序列化的作用

    今天看了一下项目中的action大多数都没有进行序列化。所以项目上都是一大堆警告。

序列化究竟有什么作用呢?

简单来说。Java的序列化机制是通过在执行时推断类的serialVersionUID来验证版本号一致性的。

在进行反序列化时,JVM会把传来的字节流中的serialVersionUID与本地对应实体(类)的serialVersionUID进行比較。假设同样就觉得是一致的。能够进行反序列化,否则就会出现序列化版本号不一致的异常。

当实现java.io.Serializable接口的实体(类)没有显式地定义一个名为serialVersionUID。类型为long的变量时。Java序列化机制会依据编译的class自己主动生成一个serialVersionUID作序列化版本号比較用。这样的情况下,仅仅有同一次编译生成的class才会生成同样的serialVersionUID

假设我们不希望通过编译来强制划分软件版本号。即实现序列化接口的实体可以兼容先前版本号。未作更改的类。就须要显式地定义一个名为serialVersionUID。类型为long的变量,不改动这个变量值的序列化实体都可以相互进行串行化和反串行化。


转自:http://blog.sina.com.cn/s/blog_3e9d2b3501011uy8.html


====================================

看了非常多关于序列化的文章,其他都说的太官方或者邪乎。就这篇文章让我突然明确了序列化的意思。


JAVA序列化的作用