ViewModel 原理

ViewModel 类旨在以注重生命周期的方式存储和管理界面相关的数据。ViewModel 类让数据可在发生屏幕旋转等配置更改后继续留存。

如何使用

1
private val viewModel = ViewModelProvider(this).get(MyCustomViewModeClass::class.java)
阅读更多

Java 并发编程之 ReentrantLock


ReentrantLock,可重入锁,基于 AQS 的机制,实现了公平锁和非公平锁,给开发者提供了一个更为灵活的锁实现,既然是个锁,ReentrantLock 也实现了 Lock 接口

阅读更多

Java 并发编程之 AQS


AQS,全称为 AbstractQueuedSynchronizer,是 JUC 包中的一个抽象类,为开发者提供了编写同步锁的机制
其中封装了 FIFO(first in first out) 的队列

阅读更多

ConcurrentHashMap 源码阅读笔记


本文基于 JDK 1.8 分析

HashMap 是非线程安全的类,在多线程并发 put 导致 resize,在 transfer 过程中可能导致死锁或者数据丢失

而 ConcurrentHashMap 则是一个线程安全的 Map 类,在 HashMap 的基础上做了线程安全的处理

阅读更多

RxJava2 原理解析


RxJava is a Java VM implementation of Reactive Extensions: a library for composing asynchronous and event-based programs by using observable sequences.
RxJava 是 Reactive Extensions 的 Java VM 实现:一个使用可观察序列组合异步和基于事件的程序的库。

RxJava 通过观察者订阅被观察者进行事件的分发,并提供了很多被观察者(即事件发送者)的创建方法和事件转换的操作符函数(map、flatmap、filter 等等)

阅读更多