1 |
|
进入数据库 bash
1 | docker exec -it first-mysql /bin/bash |
连接数据库
1 | mysql -u root -p |
进入我们的容器
1 | // 两种进入容器区别 |
mysql 问题记录
1 | 问题1. MySQL said: Authentication plugin |
浮躁的世界 安静的心
1 |
|
1 | docker exec -it first-mysql /bin/bash |
1 | mysql -u root -p |
1 | // 两种进入容器区别 |
1 | 问题1. MySQL said: Authentication plugin |
1 |
|
1 | 1. 支付 |
Java 1.6 以及以前版本,String 对象对 char 数组进行了封装、 char 数组、 偏移量 offset、字符串个数 count、哈希值。
Java 1.7 版本 到 1.8版本 char 数组、哈希值。这样的好处的是 String 对象占用的内存少了。String.substring 方法不再共享 char[] 数据了,解决内存泄漏问题。
从 Java 1.9 版本开始。使用byte[] 字段、coder。节约内存空间
保证 String 对象的安全性。
保证 hash 属性值不会频繁变更,确保了唯一性。
可以实现字符串常量池。
构建超大字符串;
使用 String.intern 节省内存
使用 String.indexOf() 替代 spilt()
1.扩展函数本质上并不是对原先的类新增一个方法,它是以静态导入的方式来实现的。
2.扩展函数跟原先的函数重名,并且参数都一样时,扩展函数会失效,调用的依旧是原先的函数。
3.扩展函数不具备多态性。
4.Java 也能调用 Kotlin 的扩展函数,可以把它当成是一个工具类来使用。
kotlin. 常用扩展函数的使用
with 是将某个对象作为函数的参数,在函数块内可以通过 this 指代该对象。在函数块内可以直接调用对象的方法或者属性。
在 with 函数中还包含了 contract dsl,它是为编译器提供有关函数行为的附加信息,这有助于分析质量。 后面其他的扩展函数也有 contract dsl,在阅读源代码时可以忽略掉。
apply 函数是指在函数块内可以通过 this 指代该对象,返回值为该对象自己。在链式调用中,我们可以考虑使用它,从而不用破坏链式。
also 是 Kotlin 1.1 新增的函数,类似于 apply 的功能。跟 apply 不同的是,also 在函数块内可以通过 it 指代该对象,返回值为该对象自己。
run 函数类似于 apply 函数,但是 run 函数返回的是最后一行的值。
let 函数把当前对象作为闭包的 it 参数,返回值是函数里面最后一行,或者指定 return。它看起来有点类似于 run 函数。
总结
函数 | 是否需要返回自己本身 | 传递参数 | |
---|---|---|---|
apply | 是 | this | |
also | 是 | it | |
with | 否 | this | |
run | 否/返回函数最后一行 | this | |
let | 否/返回函数最后一行 | it |
一、Disposable
取消订阅 接口
Rxjava 1.x: Subscription
Rxjava 2.x: Disposable
二、Transformer(转换器) 在 Rxjava 中的使用
Transformer 能够将一个 Observable/Flowable/Single/Completable/Maybe 对象转换成另一个 Observable/Flowable/Single/Completable/Maybe 对象,与调用一系列的内联操作符一摸一样。
三、与 compose 操作符结合使用
compose 操作符能够从数据流中得到与原始的被观察者。当创建观察者是,compose操作符会立即执行,而不像其他的操作符需要在 onNext() 调用后才能执行。
一、什么是背压
指在异步的情况下,被观察者发送事件速度远快于观察者处理的速度,从而导致下游的 buffer 溢出,这种情况叫做背压。
二、Rxjava 1.x背压策略
缓存池只有16
1.过滤限流
2.打包缓存
3.使用背压操作符
三、Rxjava 2.x背压策略
使用 Flowbale 支持背压,默认队列大小为 128,并且要求所有操作符强制支持背压。
5种背压策略。
1 |
|
1.MISSING
表示通过 Create 方法创建的 Flowable 没有指定背压策略,不会对通过 OnNext 发射的数据做缓存或丢弃处理,需要下游通过背压操作符(onBackpressureDrop()、onBackpressureLatest()、onBackpressureBuffer())指定背压策略。
2.ERROR
表示如果放入 Flowable 的一部缓存池中的数据超限了,则会抛出
Caused by: io.reactivex.exceptions.MissingBackpressureException: create: could not emit value due to lack of requests
异常。
3.BUFFER
表示 Flowable 异步缓存池同 Observable的一样没固定大小,可以无限制添加数据,不会抛出 MissingBackpressureException 异常,但会导致 oom;
4.DROP
表示如果Flow的异步缓存池满了,则会丢掉将要放入缓存池中的数据。
5.LATEST
表示缓存池满了,则会丢掉将要放入缓存池中的数据。跟DROP一样,不同的是不管缓存池的状态如何。LATEST 都会将最后一条数据强行放入缓存池中。
并行不是并发,也不是同步,更不是异步。
并发是指一个处理器处理多个任务。并行是多个处理器或者是多核的处理器同时处理多个不同的任务。并行是同时发生的多个并发事件,具有并发的含义,而并发则不一定是并行。
一、借助 flatMap 实现并行
二、通过 Round-Robin 算法实现并行
三、ParallelFlowabe 实现并行
四、ParallelFlowabe 与 Scheduler
五、ParallelFlowabe 的操作符
六、ParallelFlowabe 和 Flowable.flatMap 比较
single 使用定长为 1 的线程池,重读利用这个线程。
newThread 每次都启用新的线程,并在新线程中执行操作。
computation 使用的固定线程池,大小为 CPU核数。
io 适合 io 操作 (读写操作、读写数据库、网络信息交互)所使用的 Scheduler ,行为模式和 newThread 差不多、区别在与 io() 的内部实现是一个无数量的上线的线程池,可以重复空闲的线程,因此多数情况下,io() 比 newThread()。
trampoline 直接在当前线程运行,如果在当前线程有其他人去正在执行,则会先暂停其他任务。
Schedulers.from 将 Executor 转化成一个调度器实例,可以自定义一个 Executor 来作为调度器。
小程序 拥有 2亿日活跃。
青少年保护
姓名头像自定义
领导人营销、滥用国家标志与建筑。
pgc 内容低俗表情
靠技术也得靠人。
小程序接口技术审核
好玩、每日签到、领取优惠券、领券下单、复购。
充值送(300送100 、500 送200 )
储值免单(买单的时候推荐、服务员业务机制)
使用储值后,比例返还。
startWith() 在数据序列的开头增加一项数据
merge() 将多个 Observable 合并为一个。
mergeDelayError() 合并多个 Observable ,让没有错误的 Observable 都完成后在发射错误通知。
zip() 使用一个函数组合多个 Observable 发射的数据集合。然后在发射这个结果。
combineLatest() 当两个 Observable 中的任何一个发射一个数据时,通过一个指定的函数组合每个 Observable 发射的最新数据(一共两个数据),然后发射这个函数的结果。
join() and groupJoin() 无论何时,如果一个 Observable 发射了一个数据项,就需要在另一个 Observable发射的数据项定义的时间窗口内,将两个 Observable发射的数据合并发射。
switchOnNext() 将一个发射 Observable 的 Observable转换成另一个 Observable,后者发射这些 Observable 最近发射的数据。
ConnectableObservable.connect() 指示一个可连接的 Observable 开始发射数据。
Observable.publish() 将一个 Observable 转换为一个可连接的 Observable。
Observable.replay() 确保所有的订阅者看到相同的数据序列,即使它们在 Observable 开始发射数据之后才订阅。
ConnectableObservable.refCount() 让一个可连接的 Ob
servable 表现得像一个普通的 Observable。
tag:
缺失模块。
1、请确保node版本大于6.2
2、在博客根目录(注意不是yilia根目录)执行以下命令:
npm i hexo-generator-json-content --save
3、在根目录_config.yml里添加配置:
jsonContent: meta: false pages: false posts: title: true date: true path: true text: false raw: false content: false slug: false updated: false comments: false link: false permalink: false excerpt: false categories: false tags: true