Serializable解析

Serializable接口是一个空接口,目的是为了标示一个类可以被序列化,

没有实现此接口的类将不能使它们的任意状态被序列化或反序列化。

那么到底什么是序列化?

简单来说所谓序列化就是将一个对象状态转化为可存储形式(字节流),然后保存在磁盘文件中,或者可以通过网络发送到其他任何程序 ,从字节流创建对象的相反过程就是反序列化。

如何使一个类可序列化?

**实现java.io.Serializable这个空接口

适用场景

1.需要将内存对象写入硬盘中
例子:当一个JavaBean在构造工具内被用户化,并与其它Bean建立连接之后,它的所有状态都应当可被保存,下一次被load进构造工具内或在运行时,就应当是上一次修改完的信息。为了能做到这一点,要把Bean的某些字段的信息保存下来,在定义Bean时要使它实现Java.io.Serializable接口

2.可用来做抽取类中变量的类型
例子:在这里插入图片描述
要知道java的包装类型 (Integer,Long,String,Double…)几乎都实现了这个接口。
在这里插入图片描述
在这里插入图片描述在这里插入图片描述
所有以Serializable接口为类型的变量,完全可以在传值的时候传入我们所需要的类型。

再谈谈Transient关键字

transient关键字只能用于变量,意思是忽略这个字段,也就是说声明为transient字段的关键字不会序列化

而声明为static关键字的变量根本不是对象的一部分,所以为声明static关键字的变量,再为它添加transient关键字毫无意义。

接着声明为final关键字的变量将直接通过值参与序列化,所以为声明为final关键字的的变量再添加transient将不会产生影响。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值