一、什么是序列化

官方叙述:序列化是将对象的状态信息转换为可以存储或传输的形式的过程。

人话叙述:我们平时输入的代码,实际上是不能储存或者传输的,所以我们需要翻译一下,翻译成能储存或者翻译的文字,这个翻译的过程叫做序列化。

二、什么要序列化

问题:为什么我们平时的代码不能储存?

众所周知,我们储存数据用的是硬盘。

问题:硬盘是如何储存数据的呢?

注释:当其他东西都不变时,电流正着流或者逆向流,可以产生不同的磁场,不同的磁场就会吸引或排斥周围的东西,东西的位置就不同。反之,磁场不同,就可以产生不同的电流(正向或逆向)。

所以,电流会有两个方向,磁场会有两种状态。这两种状态,就是我们说的,计算机只能读懂0和1,因为他只有两种状态。

磁场的状态,就一直留在硬盘里,需要资料的时候,就把这个状态读取一下,保存信息的时候,就用电流改变一下这个磁场状态。

所以,我们想要储存信息,必须把这个信息转换成0或者1,那就必须要翻译,也就是序列化。

三、什么是反序列化

序列化是把信息翻译成机器能认识的语言,那么反序列化就是把机器语言翻译回来。

四、序列化有什么通用好处

官方1:永久性保存对象,保存对象的字节序列到本地文件或者数据库中;
解释:既然已经翻译成计算机能认识的0和1了,就能储存了,就能保存下来了。

官方2:通过序列化以字节流的形式使对象在网络中进行传递和接收;

解释:很多硬件(比如数据线),也是用0和1传输信息的,所以翻译了以后,数据线也可以方便的传输这部分内容了。

官方3:通过序列化在进程间传递对象;

解释:不同的软件,用的语言不一样,你不好交换两个软件之间的信息,但是软件都必须要和计算机交流,所以都必须会0和1这个语言,所以你翻译以后,大家可以用0和1传递信息。

五、在Unity里序列化以后

在我们用Unity的时候,面板上会有一些信息,如下。

如果你希望你的信息在Unity的面板上显示出来,就可以用序列化。

反之,如果你希望面板上显示出来的东西,我不想它显示出来,也可以用反序列化。

(并不是所有的都可以序列化和反序列化)

[SerializeField] int i;//序列化
//本来这个i是不会在面板上显示的,但是因为序列化了,所以会显示[NonSerialized] public int i;//反序列化
//本来这个i会在面板上显示,但是因为用了反序列化,所以就不显示了[Serializable]
public class Tool_return : MonoBehaviour{} //序列化
//对于类,或者结构体之类的,序列化需要用[Serializable]

Unity | 序列化(Serialized)和反序列化(NonSerialized)是什么意思相关推荐

  1. java io文件流序列化_Java——Properties集合,Object序列化流与反序列化流,打印流,commons-IO文件工具类...

    一.properties集合 集合对象Properties类,继承Hashtable,实现Map接口,可以和IO对象结合使用,实现数据的持久存储. 特点: Hashtable的子类,map集合中的方法 ...

  2. java伪装反序列化字节流_java对象序列化流和反序列化流

    首先创建一个学生类 `import java.io.Serializable; public class Student implements Serializable { private stati ...

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

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

  4. (java)IO流对象(六)集合Properties类、序列化流、反序列化流、打印流

    [Properties特点] /** 集合对象Properties类特点:* 1. 继承Hashtable,实现Map接口* 2. 该集合无泛型,键值都是字符串* 3. 键值可以存储到集合中,也可以存 ...

  5. Java序列化(Serializable)与反序列化

    学习Java的同学注意了!!!  学习过程中遇到什么问题或者想获取学习资源的话,欢迎加入Java学习交流群,群号码:589809992 我们一起学Java! 序列化是干什么的 简单说就是为了保存在内存 ...

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

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

  7. 序列化流与反序列化流

    序列化是把对象特性保存到物理介质上,反序列化是把保存在物理介质上的对象取出还原成对象. 能被序列化的对象所属的类必须实现Serializable接口. 1.对象序列化流ObjectOutputStre ...

  8. IO-5(InputStreamReader、OutputStreamWriter、序列化流、反序列化流、Serializable、transient)

    1.InputStreamReader 字节流通向字符的桥梁 所有已实现的接口: Closeable, Readable 直接已知子类: FileReader 将字节输入流转换为字符输入流 使用指定的 ...

  9. 使用 Newtonsoft.Json; 序列化正常,反序列化异常的一点思考

    序列化后的字符串都正常,信息完整,但是反序列化却出现了异常. 1. 首先是不能反序列化. 我猜测是我要序列化的类 写的有问题. 我的类实例化的时候,需要向构造函数里传一个数组参数,然后用该数组参数为类 ...

最新文章

  1. 大端模式字节序和位序以及操作
  2. 云炬创业政策学习笔记20210112
  3. 如何连接Linux上的服务器 网络编程,Linux 网络编程 一
  4. 前端笔记-Vue框架的基本认识
  5. Swift 面向协议编程的那些事
  6. 用 SOLID 原则保驾 React 组件开发
  7. 写给自己,关于对纯技术的追求,以及为了金钱与前途的技术追求
  8. (转)某公司ICO涉嫌“擅自发行股票罪” 判处有期徒刑一年六个月
  9. 【领英如何一键批量有效地加好友?】
  10. shell脚本加密工具shc
  11. 中国研发经费投入逼近2万亿,保持两位数增速,企业成为主要力量
  12. 原创 | 罗勇:立足敏捷开放,推动直销银行向智能银行迈进
  13. mysql numeric 空值_mysql数据库不能添加NULL值,该怎么解决 - numeric
  14. 联想万全r520服务器安装系统,联想(lenovo)万全R520服务器图解
  15. python gdal安装_Windows 7 X64Python安装GDAL
  16. 【git】You have not concluded your merge (MERGE_HEAD exists).
  17. JAVA Scanner 类用法小结
  18. HTB打靶(Active Directory 101 Mantis)
  19. COleDateTime ParseDateTime 方法
  20. 20221014 复数、双曲复数、对偶数

热门文章

  1. html全屏遮罩层,js遮罩层穿透 怎么用JS弄遮罩层?全屏,有透明
  2. 自学python怎么练习_自学Python(4,if 语句练习)
  3. laravel pjax
  4. 防Vue系列-09 deepProperty封装Object.defineProperty
  5. 关于启动eclipse报return code=1的错误的问题解决
  6. Silverlight/Windows8/WPF/WP7/HTML5周学习导读(7月16日-7月22日)
  7. VSCode自动保存文件设置
  8. Ubuntu文件权限
  9. 7-12 秀恩爱分得快 (25 分)
  10. 【vue3】css原子化