`
vyloy
  • 浏览: 78561 次
  • 性别: Icon_minigender_1
  • 来自: 佛山
社区版块
存档分类
最新评论

Java序列化之readObjectNoData、readResolve方法

 
阅读更多
资料地址:http://download.oracle.com/javase/1.5.0/docs/guide/serialization/spec/input.html

private void readObjectNoData() throws ObjectStreamException;


Serializable对象反序列化时,由于序列化与反序列化提供的class版本不同,序列化的class的super class不同于序列化时的class的super class;或者收到有敌意的流;或接收不完整;都会对初始化对象字段值时造成影响。

每个Serializable class都应该定义自己的readObjectNoData方法。如果发生以上情况时,没有定义readObjectNoData方法时,类的字段就会初始化成它们的默认值(列在section 4.5.5 of The JavaTM Language Specification, Second Edition)。这种行为在版本1.4 of the JavaTM 2 SDK支持readObjectNoData方法之后是固定的。

当出现上面的情况时,readObjectNoData会取代readObject的调用。

ANY-ACCESS-MODIFIER Object readResolve()
    	 	 throws ObjectStreamException;


对于Serializable and Externalizable classes,方法readResolve允许class在反序列化返回对象前替换、解析在流中读出来的对象。实现readResolve方法,一个class可以直接控制反序化返回的类型和对象引用。

方法readResolve会在ObjectInputStream已经读取一个对象并在准备返回前调用。ObjectInputStream 会检查对象的class是否定义了readResolve方法。如果定义了,将由readResolve方法指定返回的对象。返回对象的类型一定要是兼容的,否则会抛出ClassCastException 。
分享到:
评论

相关推荐

    java 中序列化与readResolve()方法的实例详解

    主要介绍了java 中序列化与readResolve()方法的实例详解的相关资料,这里提供实例帮助大家理解这部分知识,需要的朋友可以参考下

    基于javatcpsocket通信的拆包和装包源码-chaugod:乔戈德

    空间开销(序列化大小)、时间开销(序列化/反序列化时间) 序列化协议: stream、xml、json、thrift、protobuf 序列化实现: java-built-in、hessian、fastjson、jackson、gson、Thrift、ProtoBuf NIO IO: 单向、阻塞、流...

    Effective c#中文版

    Effective c#中文版,改善c#的50种方法

    Effective Java 3rd edition(Effective Java第三版英文原版)附第二版

    目录如下: 1 Introduction 2 Creating and Destroying Objects ...Item 89: For instance control, prefer enum types to readResolve Item 90: Consider serialization proxies instead of serialized instances

    通信原理期末考试试题及答案2份.doc

    通信原理期末考试试题及答案2份.doc

    Skeleton-Low Poly 低多边形骨架模型Unity插件美术资源包unitypackage

    Skeleton-Low Poly 低多边形骨架模型Unity插件美术资源包unitypackage 支持Unity版本2019.4.29或更高 直接的低多边形骨架。 特点: - 低多边形(9k tris,8.5) - 适用于 Unity 5 及更高 版本 - 完全装配 - 包括一个 fbx 格式的模型 - PBR 纹理 - 高清纹理

    基于ssm+vue学生学籍管理系统源码数据库文档.zip

    基于ssm+vue学生学籍管理系统源码数据库文档.zip

    工作汇报 年终总结45.pptx

    引言 年度工作回顾 系统进展与亮点 技术创新与应用 市场反馈与用户评价 存在问题与挑战 未来展望与计划 结束语与感谢 一、引言 简要介绍智能家居系统的重要性和发展趋势 回顾本年度的工作目标和重点 二、年度工作回顾 系统建设与维护 完成的项目与里程碑 系统稳定性与可靠性提升 团队建设与培训 团队成员构成与职责 培训与技能提升活动 合作伙伴与资源整合 与供应商、合作伙伴的合作情况 资源整合与利用 三、系统进展与亮点 功能扩展与优化 新增功能介绍与效果评估 现有功能的优化与改进 用户体验提升 界面设计与交互优化 用户反馈与改进措施 四、技术创新与应用 物联网技术的应用 传感器与通信技术的升级 大数据分析与应用 智能家居的智能化管理 自动化控制与节能策略 安全防护与预警系统 五、市场反馈与用户评价 市场反馈分析 市场需求与竞争态势 市场占有率与增长趋势 用户评价总结 用户满意度调查结果

    2024年带式输送机市场分析报告.pptx

    行业分析报告

    JSP-SSM健身俱乐部客户关系管理系统可升级SpringBoot源码.7z

    前台框架基于Bootstrap这一HTML5响应式框架,能够自适应不同终端设备的屏幕大小,为用户提供良好的浏览体验。开发环境兼容myEclipse、Eclipse、Idea等多种工具,配合mysql数据库,实现数据的存储与管理。后台则采用SSM(SpringMVC + Spring + Mybatis)框架,保证系统的稳定与高效运行。 系统主要包括会员信息管理、员工信息管理、设备信息管理以及退出模块。会员信息管理模块详细记录了会员的基本信息、健身目标、消费记录以及健身习惯等,同时设有会员投诉管理模块,用于收集和处理会员的意见与建议。员工信息管理模块则涵盖了员工的基本信息、工资发放情况等,帮助俱乐部进行人事管理。设备信息管理模块则负责建立器械档案,跟踪维修情况,并合理安排器械摆放位置,以延长器械使用寿命。 数据库设计方面,会员表记录了会员的各项基本信息,包括姓名、性别、职业等;部门表与员工表则分别用于记录俱乐部的组织机构和员工信息;会员消费表记录了会员的消费详情;员工工资表则用于记录员工的工资发放情况;留言表用于收集会员的留言及回复;设备类别表与设备表则详细记录了会所内器械的分类与具

    工作汇报 年终总结5.pptx

    引言 年度工作回顾 系统进展与亮点 技术创新与应用 市场反馈与用户评价 存在问题与挑战 未来展望与计划 结束语与感谢 一、引言 简要介绍智能家居系统的重要性和发展趋势 回顾本年度的工作目标和重点 二、年度工作回顾 系统建设与维护 完成的项目与里程碑 系统稳定性与可靠性提升 团队建设与培训 团队成员构成与职责 培训与技能提升活动 合作伙伴与资源整合 与供应商、合作伙伴的合作情况 资源整合与利用 三、系统进展与亮点 功能扩展与优化 新增功能介绍与效果评估 现有功能的优化与改进 用户体验提升 界面设计与交互优化 用户反馈与改进措施 四、技术创新与应用 物联网技术的应用 传感器与通信技术的升级 大数据分析与应用 智能家居的智能化管理 自动化控制与节能策略 安全防护与预警系统 五、市场反馈与用户评价 市场反馈分析 市场需求与竞争态势 市场占有率与增长趋势 用户评价总结 用户满意度调查结果

    2024年实木指接板行业分析报告.pptx

    行业分析报告

    基于Java的高校教师绩效考核系统的设计与实现【附源码】.zip

    基于Java的高校教师绩效考核系统的设计与实现【附源码】.zip

    单片机设计文档DOC智能循迹避障小车-论文设计

    单片机设计文档DOC智能循迹避障小车_论文设计提取方式是百度网盘分享地址

    羊了个羊玩法(Unity2020.3.48f1)

    Unity游戏工程源码。使用Unity2020.3.48f1版本打开。 羊了个羊玩法。 游戏视频截图及更多游戏工程源码请访问我的主页博客“Unity3D休闲益智游戏工程源码大合集”,该工程仅供学习使用。

    java-springboot会员制医疗预约服务管理信息系统源码(源代码+说明文档资料)

    springboot会员制医疗预约服务管理信息系统 系统有首页,医院信息,坐诊信息,核酸检测,疾控通知,健康资讯,就诊引导,个人中心,后台管理等功能。 项目关键技术 开发工具:IDEA 、Eclipse 编程语言: Java 数据库: MySQL5.7+ 框架:ssm、Springboot 前端:Vue、ElementUI 关键技术:springboot、SSM、vue、MYSQL、MAVEN 数据库工具:Navicat、SQLyog

    PHP MySQL 图书馆管理系统前后台全部代码(附带数据库脚本).zip

    PHP MySQL 图书馆管理系统前后台全部代码(附带数据库脚本).zip

    基于ssm+vue开发的web新闻流媒体平台源码数据库文档.zip

    基于ssm+vue开发的web新闻流媒体平台源码数据库文档.zip

    基于Vue和Ant Design的电影院前端设计源码

    本项目是基于Vue和Ant Design的电影院前端设计源码,包含47个文件,其中主要包含16个vue前端文件,11个js脚本文件,6个jpg图片文件等。系统采用了Vue、JavaScript和HTML技术,实现了基于vue2和ant_design搭建的电影院前端项目。项目结构清晰,代码可读性强,易于理解和维护。

    实验4 交换机的安全功能配置.docx

    实验4 交换机的安全功能配置.docx

Global site tag (gtag.js) - Google Analytics