• 序列化


    序列化

    是谁,从哪里来,到哪里去

    是什么,为什么产生,干什么用的

    是什么?

    • 什么是序列化呢?
      • 本质:
        • 序列化的本质:
          把内存中的对象,转化成 字节序列 最贴近我们的django序列化.
        • 反序列化的本质:
          把字节序列, 转化成 内存中的对象
      • 本质:
        上讲,序列化就是把实体对象状态按照一定的格式写入到有序字节流,反序列化就是从有序字节流重建对象,恢复对象状态。序列化机制的核心作用就是对象状态的 保存与重建。 这句话更接近底层,但是对我不太友好 https://www.jianshu.com/p/edcf7bd2c085
    1. 定义:

      1. 序列化 (Serialization)是将对象的状态信息转换为可以存储或传输的形式的过程。 百度百科
      2. 序列化是将对象状态转换为可保持或可传输的形式的过程。MSDN的定义
        序列化的补集是反序列化,后者将流转换为对象。这两个过程一起保证数据易于存储和传输。
      • 持久化, 保持, 储存 都是一个意思: 存储到磁盘上面. 写入磁盘
      • MSDN(Microsoft Developer Network)是早期微软在推广Win32 程序设计以及开发工具时,专门为开发人员所提供的一个服务
      1. 序列化是一种处理对象流的机制——把内存中的Java对象转换成二进制流。
        对象流化后,将对象内容保存在磁盘文件中或作为数据流进行网络传输。简单来说,序列化是将对象的状态信息转换为可以存储或传输的形式的过程。
    2. 目的:编辑 百度百科 定义其实就包含了目的

      1. 以某种存储形式使自定义对象持久化;
      2. 将对象从一个地方传递到另一个地方。
      3. 使程序更具维护性。
    3. 各种理解:

      1. 当两个进程在进行远程通信时,彼此可以发送各种类型的数据。无论是何种类型的数据,都会以二进制序列的形式在网络上传送。发送方需要把这个对象转换为字节序列,才能在网络上传送;接收方则需要把字节序列再恢复为对象。
        把对象转换为字节序列的过程称为对象的序列化。
        把字节序列恢复为对象的过程称为对象的反序列化。
        说的再直接点,序列化的目的就是为了跨进程传递格式化数据

      2. 说白了就是为了保证数据传输的安全性,以免发生意外时数据丢失。
        序列化说白了就是将数据转成字节型数组然后传输。

      • 网络上传输的数据, 他们的格式都是 二进制序列/字节型数组(一个东西).
      1. 所以,序列化是把内存中某一时刻数据状态,转换成不依赖硬件,不依赖不同JVM,不依赖编程语言的,以便在稍后复原的另一种数据状态;
        这种状态可以在网络间传输,可以存储到不同硬件磁盘,可以在不同的编程语言环境复原!

      2. https://blog.csdn.net/qq_38419433/article/details/79740643 这一篇讲的根深一些
        简单来说序列化就是一种用来处理对象流的机制。所谓对象流也就是将对象的
        内容进行流化,流的概念这里不用多说(就是I/O)。我们可以对流化后的对象进行读写
        操作,也可将流化后的对象传输于网络之间(注:要想将对象传输于网络必须进行流化)!
        在对对象流进行读写操作时会引发一些问题,而序列化机制正是用来解决这些问题的!
        后面的问题,我目前无法理解,就没有拷贝.

      3. https://blog.csdn.net/so_geili/article/details/99836043 这一篇提到了 流的概念
        我接触到的无知的范围真是越来越大.

    为什么?

    • 上文中的 4.4

    干什么

    • 在是什么里面

    引申概念

    1. 程序中常用的 cin 和 cout,分别用于从键盘输入数据和向屏幕输出数据(简称为标准 I/O)。除此之外,程序还可以从文件中读入数据,以及向文件中写入数据(简称为文件 I/O)。

    数据输入和输出的过程也是数据传输的过程。数据像水一样从一个地方流动到另一个地方,因此,在 C++ 中将此过程称为 “流(stream)”。

      1. https://blog.csdn.net/qq_42721694/article/details/82085697 对象流的简介.
        对象流:有的时候,我们可能需要将内存中的对象持久化到硬盘上,或者将硬盘中的对象信息读到内存中,这个时候我们需要使用对象输入输出流。
        序列化: 是对象转换成一个字节序列的过程,是一个写操作
        反序列化: 一个字节序列转换成对象的过程 ,是一个读操作

      2. 对象流:
        使用对象流之前,很明显需要一个自定义的对象
        可是普通的自定义类创建的对象并不能被对象流序列化
        我们要让这个自定义类实现一个Serializable接口(Serializable是一个标志性接口,接口中无任何内容)

      1. 计算机中的流:
        通常来说计算机所说的流是指stream,往往是对一种有序连续具有方向性的数据(其单位可以是bit,byte,packet)的抽象描述。

      2. 计算机网络中的流:
        这里的流是说flow,
        更多的是指从一端到另一端的一次网络数据传输过程。其包含连接的建立,数据的传输。一条流往往指的是一次完成的数据传输,其包含了该过程中所有的数据包。但是一个连接可以有多个流,即在连接建立之后,可以有多次的数据传输。mark:计算机网络中的流,更多的强调是一次数据传输过程。重在过程及这个过程中的数据。

      3. TCP流:
        通常所说的TCP流是指TCP的字节流传输,其传输的数据是连续有序的字节,所以说TCP是一个流式协议,指的是其数据传输是流式的。更多的,TCP流也可以指TCP一次数据传输的过程,包含了一次完整的数据传输。
        ————————————————
        版权声明:本文为CSDN博主「lengye7」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
        原文链接:https://blog.csdn.net/lengye7/article/details/78509551

    1. 数据流(data stream)是一组有序,有起点和终点的字节的数据序列。包括输入流和输出流。
      对象流是不是数据流的一种?

  • 相关阅读:
    逆向笔记——PE文件相对虚拟地址(RVA)转文件偏移地址(FOA)
    逆向笔记——在PE任意一个节中添加代码
    FFT的物理意义
    Hilbert-Huang Transform: matlab 希尔伯特-黄变换: matlab实现
    交叉验证 Cross validation
    AAL template: ROI to brain lobe
    Types of intraclass correlation coefficience (ICC)
    统计:P值 & α值
    Notes: sensitivity & specificity
    Meet Github
  • 原文地址:https://www.cnblogs.com/ma-ming/p/11810751.html
Copyright © 2020-2023  润新知