serialVersionUID的使用

 

http://stackoverflow.com/questions/285793/what-is-a-serialversionuid-and-why-should-i-use-it

 

http://topic.youkuaiyun.com/t/20051017/20/4332328.html

 

http://blog.youkuaiyun.com/hulefei29/article/details/2823221

关于什么是serialVersionUID,可以参考java.io.Serializable的Java Doc,上面描述得很清楚:
java.io.Serializable

The serialization runtime associates with each serializable class a version number, called a serialVersionUID, which is used during deserialization to verify that the sender and receiver of a serialized object have loaded classes for that object that are compatible with respect to serialization. If the receiver has loaded a class for the object that has a different serialVersionUID than that of the corresponding sender's class, then deserialization will result in an InvalidClassException. A serializable class can declare its own serialVersionUID explicitly by declaring a field named "serialVersionUID" that must be static, final, and of type long:

ANY-ACCESS-MODIFIER static final long serialVersionUID = 42L;

If a serializable class does not explicitly declare a serialVersionUID, then the serialization runtime will calculate a default serialVersionUID value for that class based on various aspects of the class, as described in the Java(TM) Object Serialization Specification. However, it is strongly recommended that all serializable classes explicitly declare serialVersionUID values, since the default serialVersionUID computation is highly sensitive to class details that may vary depending on compiler implementations, and can thus result in unexpected InvalidClassExceptions during deserialization. Therefore, to guarantee a consistent serialVersionUID value across different java compiler implementations, a serializable class must declare an explicit serialVersionUID value. It is also strongly advised that explicit serialVersionUID declarations use the private modifier where possible, since such declarations apply only to the immediately declaring class--serialVersionUID fields are not useful as inherited members.

单相全桥逆变器中比例谐振(PR)控制的优化设计与实现 本文深入探讨了比例谐振(PR)控制在单相全桥逆变器中的优化设计与实现。通过对比PID控制,详细阐述了PR控制在50Hz基波频率处实现无静差跟踪和强抗干扰性的原理。文章提供了从理论建模、参数整定(Kp, Kr, ωc)到仿真验证的完整实战流程,并介绍了准比例谐振(QPR)控制以增强频率鲁棒性,以及多谐振点设计以抑制特定谐波等进阶优化方法,最终实现THD从3%降至1%以内的显著性能提升。 阅读详情

相关推荐

WinForm轻松打造AntDesign现代化工具栏

摘要: 本文介绍如何在WinForm中利用AntdUI库实现AntDesign风格工具栏,包括安装配置、动态生成按钮/下拉菜单、布局优化及主题美化。通过AntButton、AntDropdown等控件结合事件绑定,可快速构建支持图标、工具提示、权限控制的现代化工具栏,并解决常见图标加载、布局错乱问题。最后提供代码示例与响应式设计技巧,助你打造高效美观的WinForm界面。 (字数:150)

java专栏 1593

FindBug

FindBugs错误修改指南  1. EC_UNRELATED_TYPES Bug: Call to equals() comparing different types Pattern id: EC_UNRELATED_TYPES, type: EC, category: CORRECTNESS 解释: 两个不同类型的对象调用equals方法,如果equals方法没有被重写,那么调用object...

weixin_42851893的博客 942

一文带你完成ARMv8架构中的cache知识点

【摘要】 在最初开发ARM架构时,处理器的时钟速度和内存的访问速度大致相同。今天的处理器内核要复杂得多,其时钟速度可以快上几个数量级。但是,外部总线和内存设备的频率并没有扩大到同样的程度。有可能实现小块的片上SRAM,它可以以与内核相同的速度运行,但是与标准的DRAM块相比,这种RAM非常昂贵,因为后者的容量可以达到数千倍。在许多基于ARM处理器的系统中,访问外部存储器需要几十甚至几百个内核周期。 cache的技术背景 在最初开发ARM架构时,处理器的时钟速度和内存的访问速度大致相同。今天的处.

ABCCloud的博客 1853

从 FingBugs的错误来看JAVA代码质量(三)

Serializable; consider declaring a serialVersionUID Pattern id: SE_NO_SERIALVERSIONID, type: SnVI, category: BAD_PRACTICE This class implements the Serializable interface, but does not define a serialVersionUID field. A change as simple as adding a refe

weixin_42098860的博客 464

从安装到出图:一份给振动测试新手的LMS Test.Lab 2021完整避坑手册(含许可证更新和常见弹窗解决)

本文为振动测试新手提供LMS Test.Lab 2021的完整使用指南,涵盖安装配置、许可证更新、数据采集到频域后处理的全流程。特别针对常见弹窗错误提供解决方案,并详细讲解Colormap时频图分析技巧,帮助用户快速掌握振动数据分析核心技能。

weixin_29268331的博客 983

serialVersionUID的重要性,及Idea自动生成 serialVersionUID的设置

介绍serialVersionUID的重要性,及Idea自动生成 serialVersionUID的设置

拾年一剑 的专栏 2335

【数据集】MODIS 的 MOD07 大气廓线产品概述及下载

MODIS 的 MOD07 大气廓线产品概述及下载

WW、forever的博客 550

关于java代码质量的问题

一、错误码:WMI_WRONG_MAP_ITERATOR案例一:案例二:Bug: Method JTAMainFrame.initView(JFrame) makes inefficient use of keySet iterator instead of entrySet iteratorPattern id: WMI_WRONG_MAP_ITERATOR, ...

weixin_33862041的博客 646

【数字IC/FPGA】低功耗设计

低功耗设计方法功耗的类型低功耗设计方法静态低功耗技术多阈值工艺方法电源门控方法体偏置动态低功耗技术多电压域(Multi-Voltage Domain)预计算门控时钟门级优化技术毛刺的消除逻辑级优化物理级优化控制输入向量低功耗Soc系统的动态管理动态电压及频率调节技术低功耗操作系统存储器功耗控制总结 功耗的类型 CMOS电路中的功耗由两部分构成,第一部分为负载电容充放电时引起的功耗,称为动态功耗,另一部分为漏电流引起的功耗,称为静态功耗。其中动态功耗包括翻转功耗和短路功耗。翻转功耗是数字电路中信号翻转时电容充

qq_40268672的博客 3072

acados安装与调试指南:版本兼容性问题

在计算机编程领域,软件工具和库的安装与调试是每个开发者必经的挑战。最近,在安装和使用acados库时,我遇到了一个有趣的问题,这里我将详细分享我的经验和解决方案。

m0_62153576的博客 740

什么是serialVersionUID?serialVersionUID详解

在阅读很多开源项目中在很多类中都会发现存在一个使用static final 修饰的量,通常很大而且和代码似乎没有什么规律。 比如下面的代码: public class Dml implements Serializable { private static final long erialVersionUID = 2611556444074013268L; (代码来自阿里巴巴开源项目Client Adapter) 概述 所述的serialVersionUID属性是用来序列的标识符/反序列化的对象

北鹤M的代码手账 4万+

C# HttpClient完全攻略:从入门到精通只需5步

HttpClient是.NET框架中用于发送HTTP请求和接收HTTP响应的类。它基于异步编程模型,使得网络操作更加高效和灵活。

java专栏 1579

serialVersionUID 详解

是 Java 序列化机制中的一个字段,用于标识类的版本。当一个类实现了接口(表示该类可以被序列化),编译器会自动生成一个字段,用于表示类的版本号。是一个长整型数值,通常是一个正整数,可以手动指定,也可以由编译器自动生成。该字段的主要作用是用于在反序列化时检查类的版本是否与序列化时的版本一致,以确保反序列化的对象与序列化时的对象是兼容的。当使用进行版本控制时,通常需要考虑以下情况:当类的版本发生变化时,如何确保反序列化仍然能够成功。以下是一个示例,演示了如何使用处理不同版本类的序列化和反序列化。

1167

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

关于serialVersionUID的说明

1、为什么要使用serialVersionUID (1)对于实现了Serializable接口的类,可以将其序列化输出至磁盘文件中,同时会将其serialVersionUID输出到文件中。 (2)然后有需要使用时,再从磁盘将对象内容及serialVersionUID读入内容中的某个对象。 (3)将磁盘内容读入对象时,需要进行强制类型转换,如Person person = (Person)oi

jediael_lu的专栏 2万+

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

serialVersionUID

简单说说序列化中的serialVersionUID吧 通过这个图片我们就可以详细的了解序列化和反序列化的过程,以及为什么要使用serialVersionUID。 类通过实现 java.io.Serializable 接口以启用其序列化功能。当我们想要把Person类序列化的时候,编译器会先把Person.java文件编译生成Person.class文件,因为实现了Serializable接口,所以序列化运行时将基于该类的各个方面计算该类的默认的serialVersionUID值,这个SerialVersi

m0_47249330的博客 235

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

serialVersionUID的作用

简单来说,Java的序列化机制是通过在运行时判断类的serialVersionUID来验证版本一致性的。 在进行反序列化时,JVM会把传来的字节流中的serialVersionUID与本地相应实体(类)的serialVersionUID进行比较,如果相同就认为是一致的,可以进行反序列化,否则就会出现序列化版本不一致的异常。(InvalidClassException) serialVersionUID有两种显示的生成方式: 一个是默认的1L,比如:private static final long s

pshdhx的博客 5915

什么是serialVersionUID,为什么要使用它?

当缺少serialVersionUID时,Eclipse会发出警告。 可序列化的类Foo没有声明类型为long的静态最终serialVersionUID字段 什么是serialV

asdfgh0077的博客 2128

什么是serialVersionUID以及为何要使用它?

在 Java 编程中,序列化(Serialization)是指将对象转换为字节流的过程,而反序列化(Deserialization)则是将字节流恢复为对象的过程。这在对象的存储、网络传输等场景中非常有用。是 Java 提供的一个标记接口,实现该接口的类的对象可以被序列化。是一个与可序列化类关联的版本号,它在反序列化过程中起着重要作用,用于验证序列化对象的发送方和接收方是否加载了与序列化兼容的类。

qq_29715355的博客 551

Java serialVersionUID的使用示例

环境:JDK 1.7.0_03 + Notpad ++ 6.1           •   关于serialVersionUID的说明         – 设置 serialVersionUID默认的生成方式:         •    private static final long serialVersionUID =1L;         – serial

DBA@Robin 3979

serialVersionUID 有什么作用?该如何使用?

当一个对象实现 Serializable 接口时,多数 ide 会提示声明一个静态常量 serialVersionUID(版本标识),那 serialVersionUID 到底有什么作用呢?应该如何使用 serialVersionUID ? 回答 serialVersionUID 是实现 Serializable 接口而来的,而 Serializable 则是应用于Java 对象序列化/反序列...

weixin_30352645的博客 1570

什么是serialVersionUID?

在进行反序列化时,JVM会把传来的字节流中的serialVersionUID与本地相应实体(类)的serialVersionUID进行比较,如果相同就认为是一致的,可以进行反序列化, 否则就会出现序列化版本不一致的异常。自动生成一个新版serialVersionUID, 然后将这个新版serialVersionUID与序列化时生成的旧版serialVersionUID进行比较, 如果相同则反序列化成功, 否则报错。在反序列化时, JVM会再。但这在实际开发中是不可能的, 我们的类会不断迭代, 一旦类被。

张紫娃的博客 306

Serializable中的serialVersionUID

有序列化,就必然有反序列化!比如在A端为UserLogin(见上一篇对象序列化)做了序列化,然后在B端进行反序列化。 首先需要,A端和B端都定义有相同的UserLogin类。可是,万一两端的UserLogin定义不一致呢?这就需要serialVersionUID。 简单来说,serialVersion类似于软件的版本号,如果软件的发布以对应的版本号作为标识。那么serialVersionUID...

weixin_30809173的博客 330

Serializable接口serialVersionUID作用

Serializable是Java提供的序列化接口,是一个空接口,为对象提供标准的序列化与反序列化操作。使用Serializable实现序列化过程相当简单,只需要在类声明的时候指定一个标识,便可以自动的实现默认的序列化过程。 private static final long serialVersionUID = 1L; 上面已经说明让对象实现序列化,只需要让当前类实...

ying3072的博客 2373
上一篇: HornetQ与JBoss4集成
下一篇: Keyboard Ghosting Explained!(什么是键盘冲突)
greenlinuxyyj
博客等级 码龄20年 5粉丝 24原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值