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将不会产生影响。

Serializable解析相关推荐

  1. 哔哩哔哩2020校园招聘后端笔试卷(一)

    1. 在Java中下面哪个对类的声明是错误的?(C) A. public class MyClass{} B. class MyClass extends MySuperClass implement ...

  2. Android序列化经典解析(三)-拨乱反正,堪比窦娥的Serializable

    关于网上很多博客提到Parcelable比Serializable快,原因大致有两种说法: Serializable基于反射来做的 Serializable基于磁盘进行序列化,而Parcel基于内存 ...

  3. Serializable官方实例解析02-将序列化与自定义数据格式结合使用

    官方地址:Using Serialization with a Custom Data Format 将序列化与自定义数据格式结合使用 1. 介绍 演示如何使用 writeObject  和  rea ...

  4. 100 行代码透彻解析 RPC 原理

    欢迎关注方志朋的博客,回复"666"获面试宝典 文章来源:https://sourl.cn/HpZHvy 引 言 本文主要论述的是"RPC 实现原理",那么首先 ...

  5. Spring解析,加载及实例化Bean的顺序(零配置)

    点击上方蓝色"方志朋",选择"设为星标"回复"666"获取独家整理的学习资料! 作者:jb_hz blog.csdn.net/qq_2752 ...

  6. Java集合---LinkedList源码解析

    一.源码解析 1. LinkedList类定义 2.LinkedList数据结构原理 3.私有属性 4.构造方法 5.元素添加add()及原理 6.删除数据remove() 7.数据获取get() 8 ...

  7. fegin调用为什么要序列化_全方位解析Java的序列化

    前言 相信大家日常开发中,经常看到Java对象"implements Serializable".那么,它到底有什么用呢?本文从以下几个角度来解析序列这一块知识点~ 什么是Java ...

  8. java treeset原理_Java集合 --- TreeSet底层实现和原理(源码解析)

    概述 文章的内容基于JDK1.7进行分析,之所以选用这个版本,是因为1.8的有些类做了改动,增加了阅读的难度,虽然是1.7,但是对于1.8做了重大改动的内容,文章也会进行说明. TreeSet实现了S ...

  9. 深入解析Spring架构与设计原理-AOP

    2019独角兽企业重金招聘Python工程师标准>>> 关于AOP的个人理解 AOP联盟定义的AOP体系结构把与AOP相关的概念大致分为了由高到低.从使用到实现的三个层次.关于这个体 ...

最新文章

  1. python 把2个列表或者2个元组转成字典
  2. AngularJS2.0 教程系列(一)
  3. matlab中prismastic,魅力值是什么意思
  4. vba thisworkbook 切换表 执行 速度慢_带你初探VBA事件的大门—工作簿事件
  5. springboot获取URL请求参数的几种方法
  6. 无法读取内存属于错误吗_深入了解 JavaScript 内存泄露
  7. 第六讲 使用第三方库及简单网页
  8. zabbix-server-mysql安装_zabbix server 安装部署
  9. 酷动网博客整站源码+Panda PRO主题+7000条完整数据
  10. day30 java的IO流(3)
  11. linux----------今天又遇到一个奇葩的问题,就是linux文件的权限已经是777了但是还是没有写入权限,按照下面的命令就解决了
  12. 启用和禁止Oracle的dbms_job
  13. [HDFS Manual] CH1 HDFS体系结构
  14. LINQ to SQL语句 收藏系列
  15. 串级调节系统参数整定方法(串级调节器参数整定)
  16. 北大青鸟php培训怎么样,北大青鸟php培训怎么样
  17. dnf手游登录不显示服务器,不要着急 DNF手游提示登录失败error7正确解决方法
  18. 手把手教你扩展个人微信号(2)
  19. php会议签到签退系统,会议签到管理系统,无障碍会议签到系统,一卡通会议签到系统,会议签到系统 - 新开普(NewCapec)...
  20. vue中如何实现换肤?

热门文章

  1. 面向对象设计原则(七大原则)
  2. 物联网工程实践第十天
  3. Java_SE_基础回顾
  4. 前端导出PDF(纯前端功能)
  5. ASP.NET验证控件之CustomValidator
  6. mapreduce实现wordcount 详细解析
  7. vue实现webapp
  8. mt4函数-开仓,平仓
  9. CSS中 解决文字高度上下存在留白的问题
  10. 归并排序c语言实验报告,归并排序算法及其C语言具体实现