![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java
为战而生_C
这个作者很懒,什么都没留下…
展开
-
Java8 CopyOnWriteArrayList 源码解析
前言一看这个,咋这么长的名字,记起来有点麻烦呀!这个类使用的情况不多,最近在看EventBus的时候看到过,所以还是跳出来学习一下,看一下这个类的庐山真面目是什么东西?CopyOnWrite,大概能猜到跟写时复制有关,为什么要有这个东西?不难想出这是为了线程安全而设计的,否则直接用 ArrayList 就行了,那好了,说的这个东西就是一个ArrayList ,在此基础上,他是线程安...原创 2018-08-21 17:16:16 · 182 阅读 · 0 评论 -
Android Handler 源码解析
前言我相信,用过Android的人基本都会使用Handler,或者多多少少会听到这个东西,在安卓里面,这东西太重要了,如果你还不会基本用法,那应该是需要反省一下。当然,用过它的人也不必沾沾自喜,我们真的很了解Handler吗,还是说只会使用?你有看过他的每一行代码?仔细思考过吗?对于我来说,确实没有,所以我带着问题,想全面了解 Handler。是什么东西?handler,英文有(信...原创 2018-08-21 17:25:06 · 135 阅读 · 0 评论 -
Android HandlerThread 源码解析
前言这个东西看着很高端的感觉,刚开始没明白这是用来干啥用的,他的源码也很简单,简单到都想不出来他的场景,后面看到以博客毛瑟顿开,HandlerThread的特点,大概就是说,它用子线程的Looper,使我们的消息在子线程中处理,通常我们都是绑定了主线程的 MessageQueue,一定程度上加大了主线程消息处理的负担。在子线程中处理消息,自然也不能处理消息,可以处理一些后台的任务,但是他是串行...原创 2018-08-21 17:24:34 · 207 阅读 · 0 评论 -
Android AsyncTask 源码解析
是什么东西?顾名思义,异步任务,就是说我们可以让我们异步执行任务,不过通常使用它是为了异步执行,主线程更新UI,我们都知道,Android 的UI更新操作,都会检查是否是主线程,如果不是的话就会报出异常,这一步是在ViewRootImpl里面做的,这里就不多说了。在使用的时候,我们只需要将后台处理的代码写在doInBackground,更新UI的工作写在onPostExecute就行了,就可以...原创 2018-08-21 17:23:37 · 124 阅读 · 0 评论 -
Android LruCache 源码解析
LruCache 是什么东西?LRU 咋一看这么熟悉,操作系统里面内存管理,页面置换时替换算法之一,英文全拼为Least Recently Used 以为最近最少使用,简单来说,就是替换掉最老的数据。其核心思想为如果数据最近被访问过,那么将来被访问的几率也更高。另外一个比较简单的算法是 FIFO,First In First Out 先进先出,就是淘汰最先使用的,也就是说留下最近使用的,看似这...原创 2018-08-21 17:22:56 · 198 阅读 · 0 评论 -
Android SparseArray 源码解析
是什么东西?sparse 是稀疏的意思,顾名思义,是一个稀疏数组,但实际上,他是一个key 只能为 int 的key-value 的数据结构,类似于HashMap Android Developer 中对它的解释 SparseArrays map integers to Objects. Unlike a normal array of Objects, there can be g...原创 2018-08-21 17:22:13 · 154 阅读 · 0 评论 -
Java8 ThreadLocal 源码解析
前言ThreadLocal ,像是一个神秘的黑衣人,令人望而生畏。唯有下定决心,一探究竟,方能解开他神秘的面纱、在Android中,Handler,EventBus,ConnectionPool 等等,都曾出现它的身影是什么东西?看到Thread,就想到应该是与线程有关吧,其次,Local是说本地,那组合起来就是线程私有,就是说每个线程都有备份,各备份不是同一个对象,一般来说,他的...原创 2018-08-21 17:20:47 · 270 阅读 · 0 评论 -
Java8 PriorityQueue 源码解析
PriorityQueue 优先级队列前世今生extends AbstractQueue AbstractQueue extends AbstractCollection implements Queue实现原理大白话内部使用你所熟悉的数据结构最堆来实现,每次都是取堆顶的元素。至于堆怎么实现,其实很简单,就一个数组而已,这里就不讨论怎么实现堆了。默认是根据传入的对象进行...原创 2018-08-21 17:20:05 · 358 阅读 · 0 评论 -
Java8 LinkedBlockingQueue 源码解析
LinkedBlockingQueue 链表阻塞队列链表阻塞队列,顾名思义,也就是一个基于队列的阻塞式的链表实现,里面的代码写的很漂亮,生产者消费者模式在这个类中用的酣畅淋漓,其作者是大名鼎鼎的 Doug Lea,掌握这个类是比较重要的。里面很多实现基于锁,可以好好学习一下。前世今生继承自AbstractQueue 实现了 BlockingQueue,那我们就来看一下有哪些接口,...原创 2018-08-21 17:18:00 · 848 阅读 · 0 评论 -
Android EventBus 源码解析
基于最新的 3.1.1 分析前言之前分析的都是官方库的一些源码,现在打算尝试分析一些比较优秀的第三方开源库,选择分析EventBus,一方面是因为他的库不大,容易理解,这样我们也容易接受,如果一开始就项分析很大的库,会比较难吧。是什么东西?EventBus 是一个基于Android 或者Java 的发布订阅的消息总线,从使用上来说,它允许我们通过注解,就能在Android ...原创 2018-08-21 17:25:54 · 283 阅读 · 0 评论