java反序列化的原理,java – 反序列化的工作原理?
据我所知,没有调用Object的序列化类的构造函数,而是第一个非序列化构造函数的no-arg构造函数.现在考虑以下代码
public class SerializeDemo implements Serializable {
private String name;
int age; //default 0
public SerializeDemo(String name, boolean setAge){
this.name = name;
if(setAge){
this.age = 18;
}
}
@Override
public String toString() {
return "Name is " + name + " and age is " + age;
}
public static void main(String args[]) throws IOException, ClassNotFoundException {
ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream(new File("//home//aniket//Desktop//serializedObjects.txt")));
ObjectInputStream ois = new ObjectInputStream(new FileInputStream(new File("//home//aniket//Desktop//serializedObjects.txt")));
SerializeDemo sd = new SerializeDemo("Test",true);
System.out.println("Before Serialization : " + sd);
oos.writeObject(sd);
SerializeDemo sdCopy = (SerializeDemo)ois.readObject();
System.out.println("After Deserialization : " + sdCopy);
}
}
和输出(如预期的那样)
Before Serialization : Name is Test and age is 18
After Deserialization : Name is Test and age is 18
现在,具有no-arg构造函数的非可序列化超类是Object(如果我错了,请纠正我).所以基本上没有调用SerializeDemo构造函数.
现在,在反序列化期间创建Object时,它将尝试重建实例状态.所以它将年龄定为18岁.
问题是怎么样的?
我故意不提供二传手.也不是按照上面的讨论,它的构造函数被调用.那它是如何设置的?(同样适用于名称)
java反序列化的原理,java – 反序列化的工作原理?相关推荐
- 优秀的Java程序员必须了解GC的工作原理
一个优秀的Java程序员必须了解GC的工作原理.如何优化GC的性能.如何与GC进行有限的交互,因为有一些应用程序对性能要求较高,例如嵌入式系统.实时系统等,只有全面提升内存的管理效率 ,才能提高整个应 ...
- 优秀Java程序员应该了解的GC工作原理
一个优秀的Java程序员必须了解GC的工作原理.如何优化GC的性能.如何与GC进行有限的交互,因为有一些应用程序对性能要求较高,例如嵌入式系统.实时系统等,只有全面提升内存的管理效率 ,才能提高整个应 ...
- 计算机网络交换机原理,计算机网络__交换机工作原理
计算机网络交换机工作原理 在前面了解到根据交换机在OSI参考模型中工作的协议层不同,将交换机分为二层交换机.三层交换机.四层交换机.交换机工作的协议层不同,其工作原理也不相同.下面我们将介绍各层交换机 ...
- 微机计算机系统结构原理,计算机系统组成及工作原理题目
计算机系统组成及工作原理计算机系统组成及工作原理 1 计算机系统一般有 硬件 和 软件 两大系统组成 2 微型计算机系统结构由运算器 控制器 存储器 输入设备 输出设备五大部分组成 3 微型计算机的运 ...
- 计算机网络中的网桥,一个动画看懂网络原理之网桥的工作原理
一个动画看懂网络原理之网桥的工作原理 一.网桥是干什么的 网桥工作在OSI参考模型数据链路层的两端口或多端口二层网络设备,是用来连接不同网段的存储转发设备.使用网桥能扩展网络的距离或范围,还可以提高网 ...
- 时钟服务器工作原理,NTP时间服务器工作原理
文章目录 [隐藏] NTP简介 NTP工作原理 NTP工作模式 NTP简介 NTP(Network Time Protocol, 网络时间协议)是由RFC 1305定义的时间同步协议,用来在分布式时间 ...
- 【java项目实践】具体解释Ajax工作原理以及实现异步验证username是否存在+源代码下载(java版)...
一年前,从不知道Ajax是什么,伴随着不断的积累,到如今常常使用,逐渐有了深入的认识. 今天,假设想开发一个更加人性化,友好,无刷新,交互性更强的网页,那您的目标一定是Ajax. 介绍 在具体讨论Aj ...
- java开发流程图_Java 详解 JVM 工作原理和流程
作为一名Java使用者,掌握JVM的体系结构也是必须的. 说起Java,人们首先想到的是Java编程语言,然而事实上,Java是一种技术,它由四方面组成:Java编程语言.Java类文件格式.Java ...
- java开发门磁系统,门磁传感器工作原理及门磁系统在智能家居中应用
一些门禁系统是基于智能总线和同个系统平台,这样智能家居的智能终端可以方便地接入可视门铃系统门口机和管理中心,实现访客对讲.留言.留影和门禁功能,成为家庭安全的第一道防线.这些还可同时配备智能感应卡.指 ...
- java开发门磁系统,门磁传感器工作原理及门磁系统在智能家居中的应用
门磁系统,作为智能家居安防部分的第一道防线,一般可分为门磁开关.门磁传感器(探测器).门磁报警器三大部分组成. 一些门禁系统是基于智能总线和同个系统平台,这样智能家居的智能终端可以方便地接入可视门铃系 ...
最新文章
- android 虚拟设备的用法
- 用python画圣诞树图片-节日快乐! Python画一棵圣诞树送给你
- soc 设计soc设计 uml实务手册_采用 USB4 技术升级 SoC 设计
- java 打包jar文件以在没有安装JDK或JRE的机子上运行
- java自动化_作为测试工程师进阶自动化选Java还是Python?
- SpringMVC学习--参数绑定
- Linux文本查看命令之cat
- 记录配置fast rcnn(caffe)仅CPU遇到的问题
- 分享几个个人经常用到的js方法
- 数据库复习 库 表 记录的 增删改查 基础
- c语言中用递归求平方根,下列给定程序中,函数fun()的功能是:应用递归算法求某数a的平方根。求平方根的迭代公式如下: 例如 - 赏学吧...
- (最新版 易卷)自动阅卷系统|自动阅卷机|网上阅卷系统
- [译] 网站设计综合指南
- python读取组合惯导数据,并进行坐标转换到北东天、utm坐标系
- linux飞行模式命令,Android 开启飞行模式的几种方式
- Comet OJ C1964 I am Groot
- 用于excel(或wps)中进行ip处理转换的vbs模块
- Android 禁止键盘弹出 关闭键盘 禁用键盘 禁用输入法 关闭输入法
- mezzanine timezone 的问题
- 嵌入式平台ssh开发环境搭建