HSH's Blogs

  • Home

  • Tags

  • Categories

  • Archives

Http基础

Posted on 2018-08-14 | Edited on 2018-08-31 | In 框架源码

WebSocket

WebSocket协议是基于TCP的一种新的网络协议。它实现了浏览器与服务器全双工(full-duplex)通信——允
许服务器主动发送信息给客户端。

在WebSocket协议协议产生之前,双工通讯是通过客户端向服务端不停的发送HTTP请求,从服务端拉取数据
更新来实现的。这样做造成了客户端的HTTP轮询的滥用,并且效率是底下的。

Read more »

OkHttp源码分析(一)

Posted on 2018-08-14 | Edited on 2018-08-31 | In 框架源码

Call

Call 在OKHttp中代表着一个已经准备好可以执行的Http请求;

Call请求是能够被取消的;

Cal代表着一个独立的request和response的Stream流,并且是不能够被执行两次的;

Read more »

结构体

Posted on 2018-08-13 | Edited on 2019-03-21 | In C++

定义

结构体是一种构造数据类型,其将不同的数据类型整合起来,形成一个自定义的数据,类似于
JavaScript中的类,不同的是,不能够定义函数;

1
2
3
4
5
6
7
// 结构体是一种构造数据类型
// 把不同的数据类型整合起来,成为一个自定义的数据类型
struct man{
int age;
char name[10];
char* sex;
};
Read more »

捕获全局异常

Posted on 2018-08-11 | Edited on 2018-08-30 | In Java

UncaughtExceptionHandler

Java提供了一种捕获全局异常的机制,当线程中出现异常时,我们可以主动将其捕获,并传入自己的异常
处理其,可以决定是否结束程序;

Read more »

RxJava源码分析(二)

Posted on 2018-08-11 | Edited on 2018-08-30 | In 框架源码

subscribeOn

subscribeOn用来切换事件流上游所在的线程;

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
Observable.create<Int> {
it.onNext(1)
it.onNext(2)
it.onNext(3)
it.onComplete()
}.map {
it.toString()
}.flatMap {
Observable.just(it)
}.subscribeOn(Schedulers.io()).subscribe(object :Observer<String>{
override fun onComplete() {
}

override fun onSubscribe(d: Disposable) {
}

override fun onNext(t: String) {
}

override fun onError(e: Throwable) {
}
})

Read more »

RxJava源码分析(三)

Posted on 2018-08-11 | Edited on 2018-08-30 | In 框架源码
observeOn

observeOn用来切换事件流下游所在的线程;

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
Observable.create<Int> {
it.onNext(1)
it.onNext(2)
it.onNext(3)
it.onComplete()
}.map {
it.toString()
}.flatMap {
Observable.just(it)
}.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(object :Observer<String>{
override fun onComplete() {
}

override fun onSubscribe(d: Disposable) {
}

override fun onNext(t: String) {
}

override fun onError(e: Throwable) {
}
})

Read more »

RxJava源码分析(一)

Posted on 2018-08-11 | Edited on 2018-08-30 | In 框架源码

RxJava

1、RxJava中的操作符,照目前的理解,大体可以分为两类:一类是由static修饰的类操作符,这类操作符代
表有create、just等,它们用来引起一个Rx数据流;另一类则是实例操作符,这一类操作符必须得有Observable
实例才能够调用,代表有map、flatMap等,它们一般作用于数据流的中间环节,起到操作数据流的作用;

2、我们把Rx操作认为是一个数据流,并分为上游和下游,最上游即我们开始Rx操作的地方,一般以
Observable.create、Observable.create等类操作符开始,而最下游则是我们调用subscribe,并为
其传递一个Observer为终点;可以这样认为,除了最上游,每一个操作符都有自己的上游操作符,除了最下游,
每一个操作符都有自己的下游操作符;

Read more »

RxJava操作符

Posted on 2018-08-08 | Edited on 2018-08-30 | In 操作符

map于flatMap的区别

map和flatMap可以说是Rx操作符中使用频率最高的操作符,它们的区别:

1、对于map,执行过程中,只有一个事件流,我们操作的是流中的内容,可以理解为操作Observable
中的T,将其装换为另一种类型O,即Observable ——> Observable

2、对于flatMap,其作用就是把原先一个事件流转化为多个事件流,比如有一个集合,原先一个事件流,集合
中的元素是线性的,一个一个被发送,而通过flatMap,将集合中的每个元素又转化为一个新的事件流,所有
事件流同时发送结合中的每个元素,这些元素被接收时是无序的;

查看ObservableFlatMap源码可以发现,每一个flatMap操作符生成的Observable都开启新的、独立
的订阅流程,这些订阅流程的Observer都持有了当前ObservableFlatMap的Observer,他们发送的数据
(onNext)最终都汇聚到了ObservableFlatMap的Observer中,通过该Observer在往下一个操作符发送
(onNext);

在将一种数据类型的Observable转换为另一种数据类型的Observable时,如果整个流程只有发送一个数据,
那么使用map进行转换即可,完全没有必要通过flatMap来转换

字符串操作

Posted on 2018-08-05 | Edited on 2019-03-21 | In C++

字符串操作函数

参考网站:http://www.kuqin.com/clib/string/strcmp.html

Read more »

注解

Posted on 2018-08-03 | Edited on 2018-08-30 | In Android

元数据(metadata)

元数据就是描述数据的数据,对数据及信息资源的描述性信息.比如说一个文本文件,有创建时间,创建人,文件大小等数据,这都可以理解为是元数据.

在java中,元数据以标签的形式存在java代码中,它的存在并不影响程序代码的编译和执行,通常它被用来生成其它的文件或运行时知道被运行代码的描述信息。java当中的javadoc和注解都属于元数据.

Read more »
1…345…8

黄声焕

71 posts
9 categories
21 tags
© 2019 黄声焕
Powered by Hexo v3.7.1
|
Theme — NexT.Gemini v6.3.0