`

关于Java Serial Version UID的一些说明

 
阅读更多

 转自:http://www.tuicool.com/articles/fmMnuu

 

       在网络传输Java对象、将Java对象存储到文件、将Java对象以BLOB形式存储到数据库中时,需要对Java对象进行序列化及反序列化,标准模式是实现Serializable接口。
   实现上述接口时,需要提供一个Serial Version UID,该UID用于标识类的版本。一个对象被序列化后,只要其版本不变,都可以进行反序列化,一旦
改变造成版本不一致,会抛出InvalidClassException异常。
   建议显示定义UID,如果不显示定义,JVM会自动产生一个值,这个值和编译器的实现有关,不稳定,可能在不同JVM环境下出现反序列化抛出InvalidClassException异常的情况。
   在Eclipse中,提供两种方式显示定义UID,一种是“add default serial version ID”,默认值为1L;另一种是“add generated serial version ID”,默认值是一个很大的数,是根据
类的具体属性而生成,当类属性有变动时,该值会更改。
   建议采用第一种自动生成方法,当对类进行了不兼容性修改时,需要修改UID。
   采用第二种方法时,如果修改了属性,不重新生成UID时,默认值是不会变的,也可以正常反序列化,但不推荐,毕竟UID的值与实际不符。
   对类进行兼容性和不兼容性修改的情况请参见以下url:http://docs.oracle.com/javase/7/docs/platform/serialization/spec/version.html。
   Hibernate的pojo类建议也采用上述方法,便于扩展。
   对于继承关系,父类实现序列化接口,子类可以继承接口的实现,但需显示定义UID,因为父类UID类型为private static,不可被继承,同时子类作为单独的类需要单独的UID。

分享到:
评论

相关推荐

    Java Serial Communication

    Java Serial Communication是一个重要的主题,它涉及使用Java编程语言与外部设备通过串行端口进行通信。在嵌入式系统、物联网(IoT)项目或任何需要硬件交互的应用中,这种技术常常被用到。本文将深入探讨Java如何实现...

    HSM USB Serial Driver version 3.5.5.zip

    标题中的“HSM USB Serial Driver version 3.5.5.zip”表明这是一个针对HSM(可能是Honeywell Security Management System)USB串行驱动程序的压缩文件,版本为3.5.5,通常这样的文件用于更新或安装硬件设备的驱动...

    HSM USB Serial Driver version 3.5.25 USB虚拟串口安装视频

    HSM USB Serial Driver version 3.5.25 霍尼HSM系列USB虚拟串口驱动安装视频 Xenon 1900 USB转串口 用于基于honywell扫描设备的串口驱动程序包,也可以作为手持系列产品的驱动

    HSM USB Serial Driver Version 3.5.9扫码枪驱动

    标题中的“HSM USB Serial Driver Version 3.5.9扫码枪驱动”指的是一个特定版本的手持式扫码枪的USB串行驱动程序,版本号为3.5.9。这个驱动程序是连接扫码枪(一种常见的条形码读取设备)与计算机之间的桥梁,使得...

    Java Simple Serial Connector

    jSSC (Java Simple Serial Connector) - library for working with serial ports from Java. jSSC support Win32(Win98-Win8), Win64, Linux(x86, x86-64, ARM), Solaris(x86, x86-64), Mac OS X 10.5 and higher...

    Java-serial-communication.zip_Java serial环境_java 串口

    Java串口通信是一种在Java应用程序之间或Java程序与硬件设备之间建立通信链接的方法。它主要应用于嵌入式系统、物联网(IoT)设备、自动化设备等需要与外部硬件交互的场景。本教程将深入讲解如何在Java环境中设置并...

    HSM+USB+Serial+Driver+version+3.5.11_findusbpkgver_HSMUSB_findus

    标题中的“HSM+USB+Serial+Driver+version+3.5.11_findusbpkgver_HSMUSB_findus”表明这是一个针对HSM(可能是Honeywell Security Module)的USB串口驱动程序,版本号为3.5.11。"findusbpkgver"可能是一个与查找或...

    HSM USB Serial Driver version 3.5.20_signed_(NOWHQL).zip

    Honeywell扫描枪1450G适用的串口模式驱动,可能也适用于其它型号,默认的模式模拟键盘输入并回车,但这样的问题是需要光标定位在一个输入框中,并不方便,使用串口模式就可以直接从串口读取扫描的信息。...

    Get the hard disk serial number or Motherboard serial number in java

    然而,通过一些间接的方式,我们可以实现这个目标。这里提到的方法是利用Java运行外部脚本(如VBScript)来查询Windows管理 Instrumentation(WMI)服务获取这些信息。 首先,我们需要了解WMI是什么。WMI是微软提供...

    java.rar_arduino_java serial

    Arduino code on serial

    sns.rar_JAVA DISK SERIAL_SNS_sns java

    标题中的“sns.rar_JAVA DISK SERIAL_SNS_sns java”暗示了这是一个关于使用Java编程语言获取硬盘序列号(Disk Serial Number)的项目,而“sns”可能是该项目或技术的缩写。描述中提到的“C++获取硬盘序列号,...

    java-com.rar_Java COM_Java 串口程序_SERIAL_java 串口_java串口程序

    文件“www.pudn.com.txt”可能是发布者在分享资源时附加的一些说明文档,可能包含了关于程序的使用指南、注意事项或者源码的简要说明。 总的来说,这个Java串口程序提供了一个实用的模板,让开发者能够快速地构建...

    intellij-generate-serial-version-uid-plugin:为IntelliJ平台生成串行版本uid插件,支持Kotlin和Java类

    IntelliJ Generate Serial Version UID 插件是一款专为IntelliJ IDEA用户设计的实用工具,旨在简化Java和Kotlin类中`serialVersionUID`字段的生成过程。`serialVersionUID`是Java序列化机制的一个重要组成部分,当一...

    FabulaTech Serial Port Splitter Version 4.4.9

    Serial Port Splitter allows several serial communications applications to get simultaneous access to serial device plugged to a COM port. 将单一物理端口虚拟多个分割多个端口使用,或者将多个物理端口合并...

    mycom.rar_java serial port_不知道波特率

    在Java编程环境中,与硬件设备通信,特别是通过串行端口(Serial Port)进行通信时,经常遇到的一个挑战就是如何确定正确的串口号和波特率。标题"mycom.rar_java serial port_不知道波特率"和描述指出的问题正是这个...

    SerialBean1.rar_JAVA读取串口_SerialBean.java_SerialBean1_java Serial

    在Java编程语言中,串口通信(Serial Communication)是一种常用的技术,用于设备间的数据传输,例如PC与硬件设备之间的交互。"SerialBean1.rar"是一个包含相关资源的压缩包,它提供了一个名为"SerialBean.java"的...

    java-rxtx-serial

    RXTX Serial and Parallel I/O Libraries RXTX is a native lib providing serial and parallel communication for the Java Development Toolkit (JDK).

    readawrite-data-throuth-serial-port.rar_READAWRITE_java serial_j

    本文将深入探讨如何使用Java编程语言通过串行端口进行数据的读取和写入,以实现“读写数据通过串口”的功能,这与“readawrite”项目密切相关。 首先,我们需要理解串行端口(Serial Port)的基本概念。串行端口是...

    SerialComm.7z

    《Java串口通信技术详解——基于win7、Java8、IntelliJ IDEA及RXTXcomm.jar的实现》 在IT行业中,串口通信是一种常见的硬件接口技术,它允许计算机与其他设备之间进行数据交换。本篇文章将深入探讨如何在Windows 7...

Global site tag (gtag.js) - Google Analytics