首页 > 其他分享 >private static final long serialVersionUID = 1L 的作用

private static final long serialVersionUID = 1L 的作用

时间:2022-08-30 22:36:44浏览次数:102  
标签:java long 编译 static 版本 序列化 1L serialVersionUID

1、这句话的意思是定义程序序列化ID

2、什么是序列化?

  • Serializable,Java的一个接口,用来完成java的序列化和反序列化操作的;
  • 任何类型只要实现了Serializable接口,就可以被保存到文件中,或者作为数据流通过网络发送到别的地方。也可以用管道来传输到系统的其他程序中;
  • java序列化是指把java对象转换为字节序列的过程,而java反序列化是指把字节序列恢复为java对象的过程

3、序列化id (serialVersionUID)

  • 序列化ID,相当于身份认证,主要用于程序的版本控制,保持不同版本的兼容性,在程序版本升级时避免程序报出版本不一致的错误。
  • 如果定义了private static final long serialVersionUID = 1L,那么如果你忘记修改这个信息,而且你对这个类进行修改的话,这个类也能被进行反序列化,而且不会报错。一个简单的概括就是,如果你忘记修改,那么它是会版本向上兼容的。
  • 如果没有定义一个名为serialVersionUID,类型为long的变量,Java序列化机制会根据编译的class自动生成一个serialVersionUID,即隐式声明。这种情况下,只有同一次编译生成的class才会生成相同的serialVersionUID 。此时如果对某个类进行修改的话,那么版本上面是不兼容的,就会出现反序列化报错的情况。

4、在实际的开发中,重新编译会影响项目进度部署,所以我们为了提高开发效率,不希望通过编译来强制划分软件版本,就需要显式地定义一个名为serialVersionUID,类型为long的变量,不修改这个变量值的序列化实体都可以相互进行串行化和反串行化。


原文转载:https://blog.csdn.net/qq_45503106/article/details/107950914

标签:java,long,编译,static,版本,序列化,1L,serialVersionUID
From: https://www.cnblogs.com/dusucyy/p/16641102.html

相关文章

  • c++ static修饰的函数作用与意义
    static修饰的函数叫做静态函数,静态函数有两种,根据其出现的地方来分类:1.如果这个静态函数出现在类里,那么它是一个静态成员函数;静态成员函数的作用在于:调用这个函数不会访......
  • JAVA进阶--static、工具类、单例、继承--2022年8月28日
    第一节 static静态关键字1、成员变量的分类和访问分别是什么样的?静态成员变量(有static修饰,属于类,加载一次,可以被共享访问)访问格式:类名.变量......
  • Educational DP Contest G - Longest Path
    目录题目思路代码题目给定一个有向无环图,叫你求图中的最长路径思路记忆化搜索,定义f[i]:表示从点i开始的最长路径长度,那么很容易得出转移方程为\(f_i=max(f_i,f_......
  • F2F-A Guide to Long-Term Career Goals and Career Planning for Software Develope
    Careerplanning,orsettingcareergoals,isagoodthingtodoforyourcareerasasoftwaredeveloper.Learnwhy,andhowinthisguide. #WhatAreCareerGoa......
  • final、static、abstract修饰符以及Interface接口
    转载:https://www.cnblogs.com/gbxblog/p/13887382.htmlfinal可以修饰:类、变量、方法当final修饰类的时候,说明该类不能被继承。当final修饰方法的时候,说明该方法不能被重......
  • 了解static修饰
    staic静态变量某些特定的数据在内存中只有一份,而且能被一个类的所有实例对象共享。可以使用类名.变量名的形式来访问。也可以先实例化对象在用对象,变量名访问classS......
  • 静态static关键字修饰成员方法和内存图
    静态static关键字修饰成员方法一旦使用static修饰成员方法,那么就成为了静态方法,静态方法不属于对象,而是属于类的如果没有static关键字,那么必须首先创建对象,然后通过对象......
  • ORACLE long类型转字符 LONG_TO_CHAR()
     ORACLE11G  long类型转字符,自定义函数:CUX_LONG_TO_CHAR() createfunctioncux_long_to_char(p_additional_whereinvarchar2,......
  • static
    C语言中static的作用1voidtest()2{3intb=1;4b++;5printf("b=%d\n",b);6}7intmain()8{9inta=0;10while(a<......
  • 静态static关键字概述和修饰成员变量
    静态static关键字概述  静态static关键字修饰成员变量案例:Student7类:privateintid;privateStringname;privateintage;staticStringroom;privatestaticin......