序列化:将数据结构(Java中指JavaBean)或对象转化为二进制串(在Java中指byte[])的过程—>持久化(序列化的特殊形式)

反序列化:将在序列化进出中产生的二进制串转换为数据结构或对象的过程

一个对象想要序列化,这个对象必须实现一个Serializable接口,这个接口没有任何方法和属性,仅仅用来标识这个类产生的对象可以序列化

被static修饰的属性的值不会被序列化,因为不属于对象,反之反序列化时会返回默认值

Transient修饰的属性不能被序列化—>transient关键字就是用来保护某些属性的值不被序列化(比如用户的隐私信息),换句话说,这个字段的生命周期只存在调用者的内存中而不会在网络中传输或写到硬盘持久化

如果我们要在不同编程语言中传递对象,就必须把对象序列化为标准格式,比如XML,但更好的方法是序列话为JSON,因为JSON表示出来就是一个字符串,可以被所有语言读取,也可以方便的存储到磁盘或者网络传输。JOSN不只是标准格式,并且比XML更快,而且可以直接在web页面中读取,非常方便。

JSON的如下优点,使他成为最广泛使用的序列化协议

  1. 这种Associative array格式非常符合工程师对对象的理解

  2. 保持了XML的Human-Readable的优点

  3. 相对于XML而言,序列化后的文件更加简洁,有研究表名XML所产生序列化后的文件大小接近JSON的两倍

  4. 具备JavaScript的先天性支持,所以被广泛运用于Web Browser的应用场景中

  5. 于XML相比,其协议比较简单,解析速度比较快

  6. 松散的Associative array使其具有良好的兼容性和可扩展性

如果持久层在Hadoop子项目中,Avro是更好的选择,Avro的设计理念更偏向于动态类型语言

对于持久层非Hadoop项目,以静态类型语言为主的应用场景,Protobuf适合开发习惯

序列化Serialize相关推荐

  1. php 传递类名,php 对象和数组序列化 serialize()返回字符串方便存储和传递 unserialize()反序列化 不丢失类型和结构...

    现在开发中经常使用序列号和反序列化技术手段,php开发中也大量使用到.如下几个知名系统都使用了大量的序列化技术ecshop 2. phpcms内容管理系统 3.laravel框架 一.序列号的目的? ...

  2. jquery序列化serialize()方法空格变为+问题解决参考方法

    jquery序列化serialize()方法空格变为+问题解决参考方法 参考文章: (1)jquery序列化serialize()方法空格变为+问题解决参考方法 (2)https://www.cnbl ...

  3. mysql序列化字段反序列化_序列化serialize()与反序列化unserialize()的实例

    在写序列化serialize与反序列化unserialize()时,我们先来看看: serialize - 产生一个可存储的值的表示 描述 string serialize ( mixed $valu ...

  4. 关于php序列化serialize字符串结构的说明

    许多php项目中运用序列化serialize字符串存取.解析变量,或者保存到数据库字段中,不是Json格式.XML格式,是一种特有的结构,如果不注意删除的部分字符,就会解析不正确,报错导致程序运行不正 ...

  5. 在线php序列化解析,PHP序列化serialize

    ## PHP序列化serialize ****序列化对象 - 在会话中存放对象 所有php里面的值都可以使用函数serialize()来返回一个包含字节流的字符串来表示.unserialize()函数 ...

  6. 表单序列化serialize()和serializeArray()的区别以及后台接收

    表单序列化serialize()和serializeArray()的区别以及后台接收 function add() {var data = $("#systemForm").ser ...

  7. 深入C#学习系列一:序列化(Serialize)、反序列化(Deserialize)

    序列化概述: 序列化 (Serialization)将对象的状态信息转换为可以存储或传输的形式的过程.在序列化期间,对象将其当前状态写入到临时或持久性存储区.以后,可以通过从存储区中读取或反序列化对象 ...

  8. form 表单序列化 serialize

    在开发中有时需要在js中提交form表单数据,就需要将form表单进行序列化. jquery提供的serialize方法能够实现. $("#searchForm").seriali ...

  9. select表单序列化serialize()出现问题

    今天在序列化select时,遇到了一个问题 HTML: <input name="id" type="text"/><select class ...

  10. php序列化(serialize)和反序列化(unserialize)函数

    用法:serialize().unserialize() 适用情境:serialize()返回字符串,此字符串包含了表示value的字节流,可以存储于任何地方.这有利于存储或传递 PHP 的值,同时不 ...

最新文章

  1. @apioperation 作用_石莲子的功效与作用分享
  2. 【计算几何】多边形点集排序
  3. linux查看上次重启日志和ip,Linux實時查看日志,訪問前10IP 和相關命令
  4. javaweb项目搭建ehcache缓存系统
  5. EF架构~codeFirst从初始化到数据库迁移
  6. netty心跳过程中 发送消息失败_Netty 4.0 实现心跳检测和断线重连
  7. 《Visual Studio.NET Tips and Tricks》第一章的翻译
  8. 二分答案——进击的奶牛(洛谷 P1824)
  9. linux后台任务结束,linux 中任务的前后台切换和暂停、结束任务的命令
  10. android java tga转png_java 里.tga图片怎么用啊,是不是要导入一个包,真的找不到资源,希望来位大神帮帮我 小弟在此拜谢!...
  11. Hooks——钩子概览
  12. asp.net中使用下拉菜单的级联问题
  13. Unity3d之HashSlash学习笔记(一)--角色属性类的构架
  14. 微信读书十块钱一个月?分分钟搞定它!“白嫖”才是最香的!
  15. Node.js 小白入门课3-设置基本数据库
  16. ReactNative常用插件使用
  17. 软件设计师中级复习小总结
  18. Android 之Google认证GMS详细解剖
  19. vuex刷新state数据丢失问题
  20. Java编程学习:初学者怎样学好Java

热门文章

  1. nginx启动无反应
  2. 【Linux-Linux常用命令】Linux常用命令总结
  3. wubi安装Ubuntu正确方法及无限等待下载amd64.tar.xz解决方法
  4. 干货 | Web前端优化及工具集锦
  5. Redis五大数据类型及常见命令
  6. 大学生涯(一)电脑工具篇
  7. python 淘宝滑块验证_python selenium 淘宝滑块验证码 问题
  8. HDU 6194 后缀数组+单调栈
  9. Typo3及Nette漏洞合集
  10. 路由表是干什么的?底层原理是什么?