码迷,mamicode.com
首页 > 其他好文 > 详细

Serializable接口

时间:2018-04-08 21:17:38      阅读:124      评论:0      收藏:0      [点我收藏+]

标签:version   div   ati   bsp   类型   磁盘   原因   引用   jvm   

一 序列化是干什么的?

我们知道,在jvm中引用数据类型存在于栈中,而new创建出的对象存在于堆中。如果电脑断电那么存在于内存中的对象就会丢失。那么有没有方法将对象保存到磁盘(对象持久化存储)或通过网络传输到远处的其他地方呢?

答案是可以,但是我们必须要求所有支持持久化存储的类实现Serializable接口。原因是,jvm不仅需要考虑将对象存储到硬盘等其他介质,还需要考虑将其读取(反序列化)出来。

如果读取在硬盘中的对象不能被创建它的类识别,岂不会产生问题?序列化就是起到告诉JVM,这个对象是由哪个类创建的。

对于jvm来说,要进行持久化的类必须要有个标记,相当于一个通行证,只有持有这个通行证,jvm才让类创建的对象进行持久化。这个通行证就是Serializable接口,这个接口将类与一个称为serialVersionUID的变量关联起来,这个serialVersionUID就是在反序列化中用来确定由哪个类来加载这个对象。

 

public class Pager implements Serializable {

    private static final long serialVersionUID = 8942860829868051173L;

}

 

Serializable接口

标签:version   div   ati   bsp   类型   磁盘   原因   引用   jvm   

原文地址:https://www.cnblogs.com/sunxiaoyan/p/8747250.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!