摘要:
一,响应式编程 响应式编程是一种关注于数据流(data streams)和变化传递(propagation of change)的异步编程方式。 1.1 异步编程 传统的编程方式是顺序执行的,必须在完成了上一个任务之后才能执行下一个任务。无论是提升机器的性能还是代码的性能,本质上都需要依赖上一个任务 阅读全文
摘要:
Go 通过类型别名(alias types)和结构体的形式支持用户自定义类型。 结构体是复合类型,当需要定义类型,它由一系列属性组成,每个属性都有自己的类型和值的时候,就应该使用结构体,它把数据聚集在一起。 结构体也是值类型,因此可以通过 new 函数来创建 组成结构体类型的那些数据成为 字段(fi 阅读全文
摘要:
导读 建议先阅读一下这几篇博客: "函数式编程初探" "函数式编程入门教程" "图解 Monad" 什么是函数式编程 函数式编程中的 函数 指的并不是编程语言中的函数(或方法),它指的是数学意义上的函数,即映射关系(如:y = f(x)),就是 y 和 x 的对应关系。 数学上对于函数的定义是这样的 阅读全文
摘要:
一,简介 Retrofit 是目前使用广泛的 Http Client 框架,它适用于 Android 和 Java。 但需要注意的是,Retrofit 本身并不是一个网络请求框架,而是一个网络请求框架的 封装 。在 Retrofit 框架中,网络请求不是由 Retrofit 本身来操作的,而是由它的 阅读全文
摘要:
引用与对象 每种编程语言都有自己操作内存中元素的方式,例如在 C 和 C++ 里是通过指针,而在 Java 中则是通过“引用”。 在 Java 中一切都被视为了对象,但是我们操作的标识符实际上是对象的一个引用(reference)。 通过将这个叫“引用”的标识符指向某个对象,之后便可以通过这个引用来 阅读全文
摘要:
在开始介绍HTTP缓存机制之前,先介绍一下代理服务器等几个相关概念以便理解。 代理服务器 代理服务器是介于客户端(如浏览器)与服务器之间的一台服务器。 代理服务器的基本行为就是接收客户端发送的请求后转发给其他目标服务器,从目标服务器返回的响应经过代理服务器后再传给客户端。 代理服务器避免了客户端与服 阅读全文
摘要:
OkHttp 拦截器流程源码分析 在这篇博客 "OkHttp3 拦截器(Interceptor)" ,我们已经介绍了拦截器的作用,拦截器是 OkHttp 提供的对 Http 请求和响应进行统一处理的强大机制,它可以实现网络监听、请求以及响应重写、请求失败充实等功能。 同时也了解了拦截器可以被链接起来 阅读全文
摘要:
责任链模式 1. 责任链模式的定义 责任链设计模式是行为型模式的一种,在责任链模里,有多个处理请求的对象,其中每一个请求都引用了其下家的对象,从而形成了一条处理请求的链。请求在这条链上传递,链上的对象逐个判断是否有能力处理该请求,如果能则处理,如果不能则传递给链上的下一个对象。发出这个请求的客户端并 阅读全文
摘要:
一, 散列函数(Hash function) 散列函数:任何一种能将任意大小数据映射为固定大小数据的函数,都能被称为散列函数。散列函数的返回值称为散列值、散列码,摘要或者简单散列。 也就是说散列函数能将任意长度的输入变换成固定长度的输出,该输出就是散列值。散列值空间通常远小于输入的空间。 散列函数的 阅读全文
摘要:
一, 前言 在上一篇博客 "OkHttp3 使用详解" 里,我们已经介绍了 OkHttp 发送同步请求和异步请求的基本使用方法。 OkHttp 提交网络请求需要经过这样四个步骤: 1. 初始化 OkHttpClient 2. 创建 Request 3. 创建 Call 对象(okHttpClient 阅读全文