首页 > 编程语言 >Java中的序列化

Java中的序列化

时间:2022-11-06 00:12:49浏览次数:35  
标签:序列化 Java 字节 对象 子类 serivalVersionUID 父类

序列化

今天想看看SpringBoot集中处理Exception的注解,继承RuntimeException的时候点进去看了一下源码,发现有一个成员属性

 

 

查了一下这个serialVersionUID的用处,简单讲就是Java是以字节流传输对象的,如果使用字节流对象将一个引用对象传输入文件中,需要对对象做序列化,转换成字节的形式,而在反序列化的时候,会从反序列化读取到的字节流中查看这个serivalVersionUID和检测文件中的serivalVersionUID(想要反序列化成的类的class文件中的成员属性),如果一致,就说明可以转化,如果不一致就会抛出异常

 

当然,我们自定义的类想要进行序列化,需要实现Serializable接口,才能交付一系列序列化方法。但是不是必须要显示定义serivalVersionUID属性

 

 

只要在不同版本的Person类中定义相同的serivalVersionUID,都能序列化和反序列化,只是不含有的属性会被忽略

父类序列化和Transient关键字

transient关键字可以防止属性被序列化到文件后,反序列化之后,transient变量的值被设置为初始值

 

  • 举一个场景例子,如果父类没有实现Serializable 接口,而子类实现了,序列化该子类对象,再反序列化后输出父类中定义的某变量的数值,这个数值是与序列化之前不相同的,因为父类的部分没有被序列化掉

  • 而因为想要反序列化构造子类,就一定要先构造父类对象,所以这种场景下就会调用父类的默认无参构造方法来构造一个父类的对象

标签:序列化,Java,字节,对象,子类,serivalVersionUID,父类
From: https://www.cnblogs.com/mumayiren/p/16861760.html

相关文章

  • JAVA学习DAY1
    JAVA学习Windos快捷键ctrl+c:复制Ctrl+v:粘贴ctrl+A:全选ctrl+x:剪切ctrl+Z:撤销Ctrl+s:保存win+R:命令窗口win+shift+esc:任务管理器win+e:打开我的电脑shi......
  • Java函数式编程:三、流与函数式编程
    本文是Java函数式编程的最后一篇,承接上文:Java函数式编程:一、函数式接口,lambda表达式和方法引用Java函数式编程:二、高阶函数,闭包,函数组合以及柯里化前面都是概念和铺垫,主......
  • JAVA8-Lambda-distinct(去重)
    去除重复元素/重复对象使用去重API//注意:Student对象需要重写equals方法和hashcode方法publicstaticvoidmain(String[]args){ArrayList<Student......
  • javaIO流
    文件的创建:packageio.stream.file;importjava.io.File;importjava.io.IOException;publicclass文件创建{publicstaticvoidmain(String[]args){......
  • java对象的反序列化和序列化
    对象的序列化packagecom.tedu.day1301;importjava.io.FileOutputStream;importjava.io.ObjectOutputStream;importjava.io.Serializable;/*完成序列化序列化:......
  • 将java装进u盘指南
    将java装入u盘指南idea将下载好的idea的文件夹移动到u盘中。在idea的bin目录里找到idea.properties文件,在最后添加以下两行idea.config.path=U:/IntelliJ/.IntelliJIdea......
  • JAVA 登录系统和学生管理系统相结合
    这个系统比较常用,很适合练手。有四部分组成1.student的类也就是 Javabean2.登陆系统的源代码  也就是main方法里面。3.user的类也就是 javabean4.学生管理系统的......
  • 35、Java——一个案例学会Dao+service层对数据表的增删改查
    ✅作者简介:热爱国学的Java后端开发者,修心和技术同步精进。文章目录​​案例​​​​建表​​​​配置​​​​Animal类​​​​DBUtils数据库工具类​​​​DateUtils日期......
  • 34、Java——一个案例学会Dom4j解析技术对XML文件的增删改查
    ✅作者简介:热爱国学的Java后端开发者,修心和技术同步精进。案例使用Dom4j解析技术实现对animal.xml文件进行增删改查操作。链接:​​dom4j包下载​​​将dom4j的jar包导入......
  • 【JAVA高级】——初识JDBC中Service业务逻辑层
    ✅作者简介:热爱国学的Java后端开发者,修心和技术同步精进。本文目录​​......