序列化

序列化和反序列化

*爱你&永不变心* 提交于 2020-11-04 07:05:20
序列化是将对象转换为字节流,本质上可以理解为将链表的非连续空间的数据存储转化为连续空间存储的数组中。这样就可以将数组进行流式传输或者存储。相反,反序列化就是将字节流转换为对象。 序列化的主要目的: 1.进程间的通信:不同节点之间进行数据传输 2.数据持久化存储到磁盘:本地节点讲对象写入磁盘。 spark 中,序列化拥有重要地位。无论是内存或者磁盘中的RDD含有的对象存储,还是节点间的传输数据,都要执行序列化 来源: oschina 链接: https://my.oschina.net/u/2507413/blog/525843

iOS的归档(archive)和解档(unarchive)

生来就可爱ヽ(ⅴ<●) 提交于 2020-04-07 07:23:56
在面向对象的编程中,会涉及到对象的保存,对象的保存在JAVA当中称之为serialize,也叫序列化。而在cocoa当中,这个过程称之为归档。cocoa当中最最典型的序列化例子就是NIB文件的保存和读取过程。 在cocoa当中如何实现了这个功能的哪? 其实在cocoa当中是通过了NSCoding协议和NSCoder抽象类共同实现的,对于NSCoder抽象类而言,其实他只是一个抽象类,是不能实例化使用的,而真正使用的是NSCoder的子类,即NSArchiver , NSUnarchiver , NSKeyedArchiver , NSKeyedUnarchiver类的实例对象。 那么实现的关键点有两点: 1、要使的需要存储的对象实现NSCoding协议,从而使他自己满足写二进制数据的能力。即是自己具有序列化的能力。 2、使用NSCoder的子类方法,实现二进制数据的动作,如读或者写。即触发存档过程。 需要注意的一点就是说,其实对于序列化,是一个“一传十,十传百”的过程,父类的序列化,会逐层递归的将所有的子对象也进行了序列化。此外,序列化,能够序列化的是对象实例和类名,而对于方法其实是无法序列化的,因此对于序列化和非序列化的类,都需要使用共同的类定义,否则无法还原。 NSCoding协议的方法: -(id)initWithCoder:(NSCoder *)coder; //

hadoop8天课程——第四天,MapReduce程序开发进阶

六眼飞鱼酱① 提交于 2020-04-06 18:20:52
mapreduce 组件全貌 map组件,reduce组件,partitioner组件,sort组件,inputformat组件,outputformat组件。 inputformat是一个抽象类,实现该接口的类负责实现源数据的读取,outputformat也是一个抽象类,实现改接口的类负责实现处理结果的输出,。用于将数据读取机制与mapreduce逻辑解耦合。默认的实现类是TextInputFormat和TextOutputFormat。也可以自定义实现inputformat和outputformat来满足自己的业务需求。在输入输出部分含有一个RecordReader和RecordWriter,用于从将输入输出数据包装成key-value形式,然后传递给下一个组件。 hadoop中的序列化机制 一次性携带多个数据的解决方法:将多个数据构造为一个java bean类对象 但是因为map和reduce的key-vlaue会在hadoop节点之间进行传输,所以自定义的类做为mr程序的key或者vlaue,则自定义类需要实现hadoop的序列化机制接口:Writable。 序列化:讲一个对象转化成一个二进制流。反序列化:从一个二进制流中构建出一个对象。java自带的序列化机制不但会将对象的各个数据域进行序列化,同时还会把这个对象的继承结构一起序列化到流中

创建型模式之单例模式

梦想的初衷 提交于 2020-04-06 16:23:12
1 概述 单例模式 应该是最简单,同时又是最复杂的一种 创建型模式 。因为大家都知道这个模式:无非就是保证某个对象在系统中只存在 一个实例 。然而想要真正实现一个完美的 单例模式 ,却不简单。 2 单例模式 一般 单例模式 的实现,都需要包含两个步骤: 将类的构造函数私有化。 提供一个 public 的方法,以供外界获取唯一的实例。 下面将一一介绍 单例模式 的各种实现方式。 3 案例 3.1 注册表式 提供一个 注册表 类,来维护所有 单例 的实例 public class Test { public static void main(String[] args) { SampleClass singleton1 = Registry.getInstance(SampleClass.class); SampleClass singleton2 = Registry.getInstance(SampleClass.class); System.out.println("Registry singleton instance1: " + singleton1.hashCode()); System.out.println("Registry singleton instance2: " + singleton2.hashCode()); System.out.println("We

Python学习第十三天 time datetime random os sysshutil json pickle shelve xml configparser hashlib suprocess logging re

南笙酒味 提交于 2020-04-06 12:56:30
https://www.cnblogs.com/yuanchenqi/articles/5732581.html https://www.cnblogs.com/linhaifeng/articles/6384466.html#_label2 一 time与datetime模块 在Python中,通常有这几种方式来表示时间: 时间戳(timestamp):通常来说,时间戳表示的是从1970年1月1日00:00:00开始按秒计算的偏移量。我们运行“type(time.time())”,返回的是float类型。 格式化的时间字符串(Format String) 结构化的时间(struct_time):struct_time元组共有9个元素共九个元素:(年,月,日,时,分,秒,一年中第几周,一年中第几天,夏令时 import time #--------------------------我们先以当前时间为准,让大家快速认识三种形式的时间 print(time.time()) # 时间戳:1487130156.419527 print(time.strftime("%Y-%m-%d %X")) #格式化的时间字符串:'2017-02-15 11:40:53' print(time.localtime()) #本地时区的struct_time print(time.gmtime())

day14~16 (常用模块)

让人想犯罪 __ 提交于 2020-04-06 07:29:17
一 # 时间模块优先掌握的操作 # 一:time # 时间分为三种格式: # 1、时间戳(timestape):从1970年到现在经过的秒数 # 作用:用于时间间隔的计算 # print(time.time()) # 2、格式化的时间字符串(format string): 按照某种格式显示的时间:2020-03-30 11:11:11 # 作用:用于展示时间 # time.strftime('%Y-%m-%d %H:%M:%S %p') # time.strftime('%Y-%m-%d %X') # 3、结构化的时间(struct_time) # 作用:用于单独获取时间的某一部分 # res=time.localtime() # 本地时区的struct_time # tm_year=, tm_mon=, tm_mday=, tm_hou=, tm_min=, tm_sec=, tm_wday(一年中第几周)=, tm_yday(一年中第几天)=, tm_isdst(夏令时)= # print(res.tm_yday) # time.gmtime # UTC时区的struct_time # 二:datetime import datetime # print(datetime.datetime.now()) -> 2020-03-30 14:52:31.833672 # 作用

五分钟学后端技术:如何学习Java工程师必须要会的RPC

穿精又带淫゛_ 提交于 2020-04-06 05:54:34
声明 本文转自 https://developer.51cto.com/art/201906/597963.htm 什么是RPC RPC(Remote Procedure Call):远程过程调用,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的思想。 RPC 是一种技术思想而非一种规范或协议,常见 RPC 技术和框架有: 应用级的服务框架:阿里的 Dubbo/Dubbox、Google gRPC、Spring Boot/Spring Cloud。 远程通信协议:RMI、Socket、SOAP(HTTP XML)、REST(HTTP JSON)。 通信框架:MINA 和 Netty。 目前流行的开源 RPC 框架还是比较多的,有阿里巴巴的 Dubbo、Facebook 的 Thrift、Google 的 gRPC、Twitter 的 Finagle 等。 常用的RPC框架 gRPC:是 Google 公布的开源软件,基于最新的 HTTP 2.0 协议,并支持常见的众多编程语言。RPC 框架是基于 HTTP 协议实现的,底层使用到了 Netty 框架的支持。 Thrift:是 Facebook 的开源 RPC 框架,主要是一个跨语言的服务开发框架。 用户只要在其之上进行二次开发就行,应用对于底层的 RPC 通讯等都是透明的

年前辞职-WCF入门(6)

两盒软妹~` 提交于 2020-04-03 09:06:32
前言 昨天早上去医院做入职体检,被告知要预约,本以为是要排队,我连视频都准备好了。。。结果就回来了。下午去了新公司那边找房子,2了,因为公司提供了班车列表,我既然就只在班车所经过的几个地方找,却遗漏了公司附近这个重要的地址。最后找了一个“江景房”,上阳台就能看到钱塘江。价格和现在的比翻了一倍,累了,不想找了。 有朋友让我把标题前缀“年前辞职”4个字拿了,好吧,我承认,我就是靠这个吸引一部分眼球的。 第六集 WCF DataContract & DataMember (WCF的Data和DataMember) 这些天写下来关于那个mex还是有点困惑,早上在stackoverflow上搜到一个回答,感觉写得挺好的,在此拿出来分享一下。地址: http://stackoverflow.com/questions/21522493/what-was-the-difference-between-wsdl-mex-endpoint-in-wcf 。或许如果你有WebService的经验,理解起来会更轻松一些。站在使用者的角度,我试着拿掉了endpoint有关mex的定义,以及注释了behaviors节点,然后访问 http://localhost:8080/ 页面给了我这么一个提示: 还是回到了最初。 还有一点,stackoverflow回答中向我们传递了一个意思,关于WCF

【DRF框架】序列化组件——ModelSerializer

生来就可爱ヽ(ⅴ<●) 提交于 2020-04-03 04:33:35
ModelSerializer   1.ModelSerializer类似于ModelForm   2.根据模型自动生成一组字段   3.自带实现了.update()以及.create()方法 ModelSerializer的使用 1.创建原信息 class Meta: 2.指定序列化的模型类 model = "XX" 3.序列化的字段列表 fields = ["xxx"]  4.序列化不包含指定字段的列表 exclude = ["xxx"]  5.找到外键关系,并将所有的外键都变为read_only=true 6.给指定的字段添加参数属性 extra_kwargs = {} ModelSerializer的方法字段 dserializers.SerializerMethodField() 一般用于正序列化 1.自定义字段方法 get_字段 2.返回值是 SerializerMethodField()的返回值 ''' 基于ModelSerializer的序列化器 ''' from rest_framework import serializers from SerDemo.models import Book class BookSerializer(serializers.ModelSerializer): # SerializerMethodField() 方法字段

Hadoop序列化机制及实例

风格不统一 提交于 2020-04-03 04:26:55
序列化 1、什么是序列化? 将结构化对象转换成字节流以便于进行网络传输或写入持久存储的过程。 2、什么是反序列化? 将字节流转换为一系列结构化对象的过程。 序列化 用途 : 1、作为一种 持久化格式 。 2、作为一种 通信的数据格式 。 3、作为一种数据拷贝、克隆机制。 Java序列化和反序列化 1、创建一个对象实现了 Serializable 2、序列化 : ObjectOutputStream.writeObject(序列化对象) 反序列化: ObjectInputStream .readObject()返回序列化对象 具体实现,可参考如下文章: http://blog.csdn.net/scgaliguodong123_/article/details/45938555 为什么Hadoop不直接使用java序列化? Hadoop 的序列化机制与 Java 的序列化机制不同,它将对象序列化到流中, 值得一提的是java的序列化机制是不断的创建对象, 但在 hadoop 的序列化机制中,用户可以复用对象,这样就减少了java对象的分配和回收,提高了应用效率。 Hadoop序列化 Hadoop的序列化不采用java的序列化,而是实现了自己的序列化机制。 Hadoop通过 Writable 接口实现的序列化机制,不过没有提供比较功能,所以和java中的 Comparable 接口合并