序列化是将对象状态转换为可保持或可传输的格式的过程。与序列化相对的是反序列化,它将流转换为对象。这两个过程结合起来,可以轻松地存储和传输数据。
将对象的状态信息转换为可以存储或传输的窗体的过程。 在序列化期间,对象将其当前状态写入到临时或持久性存储区。以后,可以通过从存储区中读取或反序列化对象的状态,重新创建该对象。
通常,对象实例的所有字段都会被序列化,这意味着数据会被表示为实例的序列化数据。这样,能够解释该格式的代码有可能能够确定这些数据的值,而不依赖于该成员的可访问性。类似地,反序列化从序列化的表示形式中提取数据,并直接设置对象状态,这也与可访问性规则无关。 对于任何可能包含重要的安全性数据的对象,如果可能,应该使该对象不可序列化。如果它必须为可序列化的,请尝试生成特定字段来保存不可序列化的重要数据。如果无法实现这一点,则应注意该数据会被公开给任何拥有序列化权限的代码,并确保不让任何恶意代码获得该权限。

JSON的概念
JSON,JavaScript Object Notation,一种更轻、更友好的用于接口(AJAX、REST等)数据交换的格式。 JSON是结构化数据串行化的文本格式,作为XML的一种替代品,用于表示客户端与服务器间数据交换有效负载的格式。它是从ECMAScript语言标准衍生而来的。JSON的设计目标是使它成为小的、轻便的、文本的,而且是JavaScript的一个子集。

长度的比较
serialize在编码后大概是json的两倍。
原因:
serialize后字符串包含了子串的长度,这可能是速度方面的优化,典型的空间换时间,但是它本身还是太重了。
serialize有更加详细的类型区分,而json只有四种类型,并且是以简单的符号表示。

速度的比较
serialize的速度在大数据量的情况下比json差了快一个数量级。
从上面两点看,json不管是在速度还是在生成的字符串的大小上都比serialize要好,那为什么serialize还要存在呢? 原因在下面这个点:实现的功能。

处理对象
json无法处理对象方法等数据。

使用范围
序列化使用serialize,特别是对象的存储,这是其存在的意义。
与对象无关的数据存储可以使用json,如包含大量数字的数组等。只是当遇到这种情况,我们需要做的可能是重构数据库了。
数据交换时使用JSON,这也是其定义所在。目前JSON是能用于UTF-8编码的数据。

最新文章

  1. angular2系列教程(六)两种pipe:函数式编程与面向对象编程
  2. 转载《android:scaleType属性》
  3. exception throw in progress runner thread_VS2015中SVN源代码无说明提交异常
  4. mysql行转列、列转行示例
  5. \r,\n,\r\n的区别
  6. Owin管道与asp.net管道模型
  7. 一天一个Java基础——序列化
  8. cmd中用PING命令时,出现'Ping'不是内部或外部命令
  9. AzCopy – 跨帐户复制 Blob
  10. VC加载显示bmp图片的函数
  11. mysql导出表的字段及相关属性
  12. JS数据类型之Number类型
  13. 两行代码玩转Spring Data排序和分页
  14. 【学习总结】Git学习-参考廖雪峰老师教程九-使用码云
  15. Linux环境变量总结
  16. Fiddler抓包9-保存会话(save)
  17. python day16--面向对象(01)
  18. IntellJ IDEA 对于 Spring Boot2.0.2 配置文件application.properties 配置
  19. access database in a helper function ?
  20. POJ 1860 Currency Exchange(Bellman-Ford)

热门文章

  1. ubuntu配置实验
  2. JSP中使用JSTL表达式
  3. CountDownLatch的简单实现
  4. matplotlib画图无法显示图例 报错No handles with labels found to put in legend.
  5. Mac 10.12安装数据库管理工具MySQL Workbench
  6. android4.0以上访问网络不能在主线程中进行以及在线程中操作UI的解决方法
  7. Python3 print()函数sep,end,file参数用法练习
  8. python安装及配置
  9. android studio2.3.3 模拟器 Jni函数调用C++对象,lldb调试this指针和相关变量显示无效的原因
  10. hibernate多对一单向关联注解方式