首页 > 编程语言 >java序列化与反序列化

java序列化与反序列化

时间:2023-09-13 09:44:24浏览次数:43  
标签:java 字节 版本号 对象 JVM 序列化

理解Java序列化和反序列化

serialization(序列化):将java对象以一连串的字节保存在磁盘文件中的过程,也可以说是保存java对象状态的过程。序列化可以将数据永久保存在磁盘上(通常保存在文件中)。

deserialization(反序列化):将保存在磁盘文件中的java字节码重新转换成java对象称为反序列化。

序列化和反序列化的应用

两个进程在远程通信时,可以发送多种数据,包括文本、图片、音频、视频等,这些数据都是以二进制序列的形式在网络上传输。

java是面向对象的开发方式,一切都是java对象,想要在网络中传输java对象,可以使用序列化和反序列化去实现,发送发需要将java对象转换为字节序列,然后在网络上传送,接收方收到字符序列后,会通过反序列化将字节序列恢复成java对象。

java序列化的优点:

实现了数据的持久化,通过序列化可以把数据持久地保存在硬盘上(磁盘文件)。
利用序列化实现远程通信,在网络上传输字节序列。

serializable

标识性接口,标识可以在 JVM 中进行序列化,JVM 会为该类自动生成一个序列化版本号。参与序列化与反序列化的类必须实现 Serializable 接口。

serialVersionUID

类属性,序列化版本号,用于给 JVM 区别同名类,没有提供版本号,JVM会默认提供序列化版本号。

transient

关键字,当序列化时,不希望某些属性参与,则可以使用这个关键字标注该属性。

参考:https://blog.csdn.net/qq_62414755/article/details/125886742

标签:java,字节,版本号,对象,JVM,序列化
From: https://www.cnblogs.com/hasome/p/17698669.html

相关文章

  • 买彩票能中大奖?用Java盘点常见的概率悖论 | 京东云技术团队
    引言《双色球头奖概率与被雷劈中的概率哪个高?》《3人轮流射击,枪法最差的反而更容易活下来?》让我们用Java来探索ta们!悖论1:著名的三门问题规则描述:你正在参加一个游戏节目,你被要求在三扇门中选择一扇:其中一扇后面有一辆车;其余两扇后面则是山羊。你选择了一道门,假设是一号门,然后......
  • java获得音频比特率
    <dependency> <groupId>it.sauronsoftware</groupId> <artifactId>jave</artifactId> <version>1.0.2</version> </dependency>maven下载不成功的话,可以手动下载,下载地址:http://www.sauronsoftware.it/projects/ja......
  • JavaSE(IDEA)
    JavaSE(IDEA)publicclassMain{publicstaticvoidmain(String[]args){//单行注释////输出一个Hello,WorldSystem.out.println("Helloworld!");}}//多行注释/*注释*//*我是多行注释可以注释一段文字*/......
  • Java 基本类型和包装类
    Java是基于对象的,所以我们都需要以对象的想法来进行思维。但Java又提供了8个基本类型,这8个基本类型基本上都和数字有关,是直接可以使用的类型。 基本类型大小包装器类型boolean/Booleanchar16bitCharacterbyte8bitByteshort16bitShortint32......
  • Java中Comparable与Comparator的区别
    Java中的Comparable和Comparator都是比较有用的集合排序接口,但是这俩接口使用却有着明显区别,具体使用哪一个接口,今天我们来一起了解下。Comparable接口Comparable是一个排序接口,位于java.lang包下面,实现该接口的类就可以进行自然排序。先看下Comparable接口的定义:pa......
  • Java学习_005 if语句:奇偶数的判定
    需求:任意给出一个整数,使用程序判定该整数是奇数还是偶数,并在控制台输出。1importjava.util.Scanner;23publicclassMain{4publicstaticvoidmain(String[]args){5Scannersc=newScanner(System.in);6System.out.println("please......
  • java继承
    继承与合成基本概念继承:可以基于已经存在的类构造一个新类。继承已经存在的类就可以复用这些类的方法和域。在此基础上,可以添加新的方法和域,从而扩充了类的功能。合成:在新类里创建原有的对象称为合成。这种方式可以重复利用现有的代码而不更改它的形式。1.继承的语法关键字e......
  • Java反序列化:CommonsCollections3调试分析
    基础知识1.Java反射1.1getConstructorgetConstructor是Java反射API中的一个方法,用于获取类的公共构造方法的引用。构造方法是一种特殊的方法,用于创建类的实例(对象),并且通常在对象创建时进行初始化。getConstructor的函数原型:publicConstructor<?>getConstructor(Class......
  • Error:java: 错误: 不支持发行版本 5(17)
    调试IDEA时出现如下错误, 参考:https://blog.csdn.net/xiao_yi_xiao/article/details/119142118 出现原因:本地配置jdk和idea默认的jdk不匹配JDK环境13 Module对应5 ......
  • Java 接收参数的7种方式
    1.直接在Controller方法参数上配置参数名@RequestMapping("/method01")publicStringmethod01(Stringname,Integerage,Doublemon){Useruser=newUser();user.setName(name);user.setAge(age);user.setMoney(mon);r......