Java程序猿之对象序列化(26)
来源:互联网 发布:可可粉推荐知乎 编辑:程序博客网 时间:2024/06/10 12:47
这一章竹迩想带大家来看看对象序列化;
先回到对象的模型:堆栈模型;
对象被创建出来是被放在堆栈中的,而堆栈又是属于Java运行内存时的一块区域;这意味着什么呢?
意味着只有当JVM运行时,内存这个区域才会打开装载对象,而当JVM运行结束,也就是程序运行结束,一切归零,所有数据将被赶出JVM内存,对象将不复存在;
如果你是在打游戏,那就必须有存储和恢复游戏的功能,也就是游戏中的各个对象状态需要保存;对象序列化就是为了在JVM停止运行后能够保存对象而诞生的;
什么是对象序列化?
堆上的对象 序列化的对象
这就是对象序列化;堆上的对象在创建时有状态,从而具备一定的形态;序列化得对象保存了状态值后被序列化存储,因此之后可以在堆上带回一模一样的对象;
而反序列化就是将序列化得对象恢复的过程;
对象序列化与文件IO
对象序列化就是将对象在文件中进行保存,从而在下一次读取文件时可以恢复原始对象状态;从而其实也是需要连通程序和文件的管道;
而在这跟管道上因为要传递的不是普通的流,而是对象流;就像热水管道要包装保温层一样,对象管道要包装对象处理的层;所以在连通管道外面要使用对象管道装饰一下;
对象序列化的实现
实现图中所示的过程:
具体代码过程如下:
先回到对象的模型:堆栈模型;
对象被创建出来是被放在堆栈中的,而堆栈又是属于Java运行内存时的一块区域;这意味着什么呢?
意味着只有当JVM运行时,内存这个区域才会打开装载对象,而当JVM运行结束,也就是程序运行结束,一切归零,所有数据将被赶出JVM内存,对象将不复存在;
如果你是在打游戏,那就必须有存储和恢复游戏的功能,也就是游戏中的各个对象状态需要保存;对象序列化就是为了在JVM停止运行后能够保存对象而诞生的;
什么是对象序列化?
堆上的对象 序列化的对象
这就是对象序列化;堆上的对象在创建时有状态,从而具备一定的形态;序列化得对象保存了状态值后被序列化存储,因此之后可以在堆上带回一模一样的对象;
而反序列化就是将序列化得对象恢复的过程;
对象序列化与文件IO
对象序列化就是将对象在文件中进行保存,从而在下一次读取文件时可以恢复原始对象状态;从而其实也是需要连通程序和文件的管道;
而在这跟管道上因为要传递的不是普通的流,而是对象流;就像热水管道要包装保温层一样,对象管道要包装对象处理的层;所以在连通管道外面要使用对象管道装饰一下;
对象序列化的实现
实现图中所示的过程:
- 连通程序和文件管道--FileOutputStream
- 处理对象流的包装管道--ObjectOutputStream
具体代码过程如下:
0 0
- Java程序猿之对象序列化(26)
- java之对象序列化
- 保存Java程序状态及设置之对象序列…
- Java学习之对象序列化(一)
- Java学习之对象序列化(一)
- Java学习之对象序列化(二)
- Java学习之对象序列化
- Java学习之对象序列化(二)
- 黑马程序员之Java--对象序列化
- Java基础之对象序列化
- Java之用Serializable序列化对象
- Java对象序列化
- Java对象序列化
- Java对象序列化
- Java对象序列化
- java对象序列化
- Java 对象序列化
- Java 对象序列化
- 块级元素和块元素,行内级元素和行内元素 ,置换元素与非置换元素 (img是行内元素,但是可以设置高度,因为他本身具有一定的高度和宽度,是置换元素,所以可以设置高度和宽度)
- java concurrent 包的基石 volatile 和 锁的原理分析
- 讨论关于cmake, 第三方库,VS2010版本和PCL库单独update直接的关系
- JSON学习笔记
- linux 修改oracle中文乱码
- Java程序猿之对象序列化(26)
- Boost程序库学习-fileSystem
- android测量文字的宽高
- Android MD5加密
- java读取Excel的方法,解析xls、xlsx两种格式
- Html5俄罗斯方块
- Vuejs——(5)v-on
- 由mutex引起的线程挂住
- 文章标题