18年5月份,在毕业快一年的时候,我终于把自己从研发助理偏向行政打杂,偶尔写一些前端代码的处境,回归到了初衷-安安静静写前后端代码的小小程序员~过程中的心酸也就不在这里吐啦,毕竟我是小太阳,永不熄灭的就是热情和坚持~

到现在,也写了半年的前后端代码了,过程中碰到了很多不理解只会用的概念,一直没有系统性的去整理,最近正好闲,而又不能显得我很闲(毕竟年底,要发年终奖啦)~今天先简单介绍下序列化吧。

相信很多同学都听说过序列化,也知道他的用法,但也和我一样的不知道该怎么整体的去介绍这个概念,别急,跟我来~

1、序列化是干嘛的?

大家都知道,不同的进程之间进行远程通信时,彼此可以发送各种类型的数据。无论是何种类型的数据,都会以二进制序列(字节序列)的形式在网络上传送。发送方需要把这个 Java 对象转换为字节序列,才能在网络上传送;接收方则需要把字节序列再恢复为 Java 对象。

- 把 Java 对象转换为字节序列的过程称为对象的序列化。
- 把字节序列恢复为 Java 对象的过程称为对象的反序列化。

现在一般反序列化过程在Java内部实现了,所以咱们感觉不到他们的存在。

2、啥时候用到序列化

对象的序列化主要有两种用途:
1) 把对象的字节序列永久地保存到硬盘上,通常存放在一个文件中;
2) 在网络上传送对象的字节序列;

我们组的项目里,会在P对象里用到序列化,其实就是用来给数据库传输数据啦。

3、咋使用序列化?

JAVA7之后(我接触的都是Java7之后的版本,之前 的没见过),已经写好了序列化接口,只需要继承一下就好啦~偷偷放一张我们实际的图(才不会告诉你们,我差点放了一张没处理过的图来着~):

4、注意点啥?

- 当一个父类实现序列化,子类自动实现序列化,不需要显式实现 Serializable 接口;
- 当一个对象的实例变量引用其他对象,序列化该对象时也把引用对象进行序列化;
- 并非所有的对象都可以序列化,,至于为什么不可以,有很多原因了,比如:
1.安全方面的原因,比如一个对象拥有private,public等field,对于一个要传输的对象,比如写到文件,或者进行rmi传输 等等,在序列化进行传输的过程中,这个对象的private等域是不受保护的。
2. 资源分配方面的原因,比如socket,thread类,如果可以序列化,进行传输或者保存,也无法对他们进行重新的资源分 配,而且,也是没有必要这样实现

把一个对象完全转成字节序列,方便传输。
所谓序列化其实就是将程序中的数据(对象)通过某种方式,保存到本地中。

5、参考资料
- [java中的序列化是什么意思?]

最新文章

  1. windows电脑变成wifi热点命令
  2. JVM工作原理
  3. Spring MVC + Spriing + MyBatis整合,写给新人
  4. cojs 简单的求和问题 解题报告
  5. 不得不知道的Python字符串编码相关的知识
  6. 9Patch在Android平台的应用
  7. MFC自定义消息
  8. BEGINNING SHAREPOINT® 2013 DEVELOPMENT 第3章节--SharePoint 2013 开发者工具 SharePoint中基于Web开发
  9. 团队作业4---第一次项目冲刺(ALpha)版本 第五天
  10. 如何利用c中的指针实现两个8bit的数合并为16bit
  11. MySQL数据库执行计划(简单版)
  12. 接口测试——postman & jmeter
  13. Educational Codeforces Round 55 (Rated for Div. 2)
  14. ubuntu搭建svn服务器并htpp访问版本库并svn与web同步
  15. innodb 关键特性(两次写与自适应哈希索引)
  16. Lua 语言基本语法
  17. Fluent动网格【6】:部件变形案例
  18. JAVA与DOM解析器提高(DOM/SAX/JDOM/DOM4j/XPath) 学习笔记二
  19. 合并单元格/VBA
  20. cratedb 基本试用

热门文章

  1. Probabilistic interpretation
  2. CodeForces 632C Grandma Laura and Apples (模拟)
  3. 为npm设置代理,解决网络问题
  4. bzoj 1492: [NOI2007]货币兑换Cash【贪心+斜率优化dp+cdq】
  5. LOJ#120. 持久化序列(FHQ Treap)
  6. HUE通过oozie工作流执行shell脚本
  7. BFS(两点搜索) FZOJ 2150 Fire Game
  8. 构造 Codeforces Round #107 (Div. 2) B. Phone Numbers
  9. Windows平台下Oracle实例启动过程中日志输出
  10. 石墨烯(转自wiki)