如果一个javabean实现了Serializable接口,那么它可以实现序列化,也就有了网络传输、本地存储等功能。在这个类中经常会看到一个SerialVersionUID,它的作用是这样的:
首先,实现序列化的类中如果没有显式声明SerialVersionUID,这个类在编译时,编译器会生成一个唯一的,隐式的UID,这个UID是由很多因素决定的,包括类的非私有方法和属性等,那么当这个类做了一些改动,比如说增加了一个属性,那么再次编译时,隐式UID会改变。也就是说,隐式的UID标示了类的一个版本。在数据传输过程中,JVM在反序列化操作时,如果发现反序列化的类的隐式UID和数据流中的类隐式UID不同,会认为这个类版本发生了改变,将抛出InvalidClassException异常。
那么,如果一个类的改动并不大,但仍然想正常地进行反序列化,该如何呢?答案是显示地规定一个SerialVersionUID,当类做了改动,但SerialVersionUID不变,JVM在反序列化时,会认为数据流中的类和本地的这个类仍属于同一版本,那么反序列化是可以进行的,这样会增加程序的健壮性。
所以,当一个类实现了序列化接口时,最好显式地声明一个UID,这样可以避免一些不必要的问题。
分享到:
相关推荐
JavaBean的作用域 PAGE REQUEST SESSION APPLICATION
这是关于javabean的一个小程序,可以帮助大家了解javabean中的一些最基本的语法,同时运用了html标记,可以利用IE浏览器去运行一下,看一下效果,如果有不明白的可以找我哦!!
javaBean是使用Java语言描述的软件组件...非可视化组件是在实际开发中经常被使用到的并且在应用程序中起着至关重要的作用。其主要功能是用来封装业务逻辑(功能实现)、数据库操作(例如,数据处理、连接数据库)等。
一个基于JAVABEAN的BBS系统!
主要介绍了JavaBean四个作用域范围的详解的相关资料,希望通过本文能帮助到大家,需要的朋友可以参考下
JavaBean简介 什么是JavaBean? JavaBean的三个组成部分 JavaBean的基本特征 BeanInfo接口 JavaBean的开发模式 使用JavaBean开发应用程序 EJB简介
利用Javabean、servlet、jsp实现用户添加、修改、删除
提供json转javabean和javabean转json的方法
用过myeclipse的人都知道,用数据库表结构生成javabean的orm很简单,也很容易,最近项目采用的是eclipse 也遇到的同样的问题,用数据库表生成dmo对象,经过同事的介绍,给我一个生成的工具的工程,中午休息的时候...
根据数据表结构自动生成javabean,需JDK1.7以上版本
进销存系统:JSP+javabean进销存系统:JSP+javabean进销存系统:JSP+javabean进销存系统:JSP+javabean进销存系统:JSP+javabean进销存系统:JSP+javabean进销存系统:JSP+javabean进销存系统:JSP+javabean
自动生成Javabean的Excel工具
在本实例中分别创建了保存商品信息的JavaBean---GoodsSingle和工具JavaBean---MyTools和实现购物车的JavaBean---ShopCar。
javabean(DB)javabean(DB)
一个JavaBean的小示例,帮助熟悉学习Javabean的使用,实现了一个简单的交互。
关于javabean的属性资料,关于四种属性的分类,以及各属性的详细介绍说明,对于javabean的理解有很大的帮助
一个关于 jsp+servlet+javaBean ,采用mvc model2的模式开发 并且带分页。
Javabean的介绍,不懂的看看 最初,JavaBean的目的是为了将可以重复使用的软件代码打包标准。特别是用与帮助厂家开发在综合开发环境(IDE)下使用的java软件部件。这些包括如Grid控件,用户可以将该部件拖放到开发...
一、实验目的 1.熟悉JavaBean的开发过程。 2.掌握Servlet的开发过程。 二、实验学时 2H 三、实验性质 综合性实验
JavaBean课件.rar JavaBean课件.rar