![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
文章平均质量分 95
三木仔
纸上得来终觉浅,绝知此事要躬行
展开
-
RecyclerView 绘制、复用、对比ListView
之前学习ListView是为了更好地学习RecyclerView,没想到拖了这么久。RecyclerView比ListView更加地复杂,主要从两个方面学习:RecyclerView 绘制流程RecyclerView 缓存复用ListView和RecyclerView缓存比较RecyclerView 涉及的类LayoutManager : 负责子View的measure及layo...原创 2020-01-13 22:48:03 · 246 阅读 · 0 评论 -
ConcurrentSkipListMap
今天发现了一个新的Java数据类型:ConcurrentSkipListMap,其中内部使用了跳表的数据结构。在看ConcurrentSkipListMap之前先看,什么是跳表?跳表1.有序的单向链表:如果我们需要检索“值6”,需要从头往尾遍历检索,顺序是:1 -> 2 -> 3 -> 4 -> 5 -> 6所用到的复杂度为O(n)2.跳表既然链...原创 2019-10-20 21:35:32 · 252 阅读 · 0 评论 -
Java ThreadPoolExecutor线程池原理
线程池参数以及简要流程AQS的使用线程池状态worker重要的变量execute流程shutdown流程原创 2019-10-12 02:08:05 · 198 阅读 · 0 评论 -
泛型参数解析
获取返回类型Method method = this.getClass().getDeclaredMethod(“execute”, MqttRequest.class, Class.class);Type type = method.getGenericReturnType();@SuppressWarnings(“unchecked”)private Class getClass...原创 2019-09-24 21:23:12 · 198 阅读 · 0 评论 -
LruCache 和 DiskLruCache 的使用以及原理分析
常用的三级缓存主要有LruCache、DiskLruCache、网络,其中LruCache对应内存缓存、DiskLruCache对应持久化缓存。Lru表示最近最少使用,意思是当缓存到达限制时候,优先淘汰近期内最少使用的缓存,LruCache和DisLruCache都是如此。原创 2019-01-05 15:08:49 · 8087 阅读 · 0 评论 -
SparseArray原理和源码解析
SparseArray 稀疏数组,Android的特有的数据结构。跟HashMap一样都是存储<Key,Value>的实体。但是不一样的是HashMap利用Hash定位实体位置,而SparseArray利用二分查找法定位位置。原创 2019-01-10 12:53:38 · 988 阅读 · 0 评论 -
ConcurrentHashMap 原理和源码分析(二)
上一篇文章《ConcurrentHashMap 原理和源码分析(一)》 介绍了ConcurrentHashMap基础内部结构、还有原理;本篇主要分析源代码,从几个主要的方法看ConcurrentHashMap内部是怎么实现的,以及ConcurrentHashMap的扩容机制和遍历机制。基本操作扩容遍历...原创 2018-12-11 00:45:22 · 150 阅读 · 0 评论 -
ReentrantLock原理从开始到放弃
之前写了篇文章介绍了synchronized的原理《Java synchronized 原理从开始到放弃》,而本篇是介绍另外一个高频的出现在并发场景的类ReentrantLock,有必要深入理解他的使用和原理。使用与synchronized的异同原理AQSCondition公平锁非公平锁...原创 2018-12-21 11:31:57 · 1316 阅读 · 2 评论 -
ConcurrentHashMap 原理和源码分析(一)
通过之前几篇文章《HashMap原理和源码分析》 《HashTable原理和源码分析》《LinkedHashMap原理和源码分析》的理解和分析,终于引出来了重头戏ConcurrentHashMap的分析。原创 2018-12-10 15:44:26 · 253 阅读 · 0 评论 -
HashMap原理和源码分析
HashMap、HashTable、LinkedHashMap、ConcurrentHashMap这四个数据结构都是比较重要的。并且LinkedHashMap、ConcurrentHashMap都是基于HashMap扩展的,特别是ConcurrentHashMap内部机制复杂而且精巧,花了好几天才熟悉源码,虽然有部分细节依然没搞清楚。接下来几篇文章记录下自己的学习成果和加深理解。HashMa...原创 2018-12-01 16:44:47 · 228 阅读 · 2 评论 -
HashTable原理和源码分析
比对着HashMap,来看一下HashTable的特性:HashTable的特性和源码解析原创 2018-12-02 22:40:22 · 237 阅读 · 0 评论 -
LinkedHashMap原理和源码分析
上两篇文章分别介绍了《HashMap的原理和源码解析》和《HashTable的原理和源码解析》,至此,第三篇文章就是LinkedHashMap的原理特性介绍以及部分源码的解析。...原创 2018-12-04 20:55:51 · 1166 阅读 · 0 评论 -
Java synchronized 原理从开始到放弃
Synchronize 到底是什么鬼东西Synchronize在java中是同步机制的关键字,用来同步代码块或者同步方法,避免并发线程造成的问题。自己在使用的过程中,一直存在很多疑问,自言自语,尝试解答一些问题来加深理解:为什么说 Synchronize 是重量级锁?Synchronize 内部是怎么做到同步的?为什么每个对象明明不是线程,却都有wait和notify方法?Synch...原创 2018-11-25 13:27:13 · 2340 阅读 · 2 评论 -
Java 线程池理解
重新理解java的线程池和怎么自定义一个合适的线程池1. 怎么自定义线程池呢?java的线程池核心就是 ThreadPoolExecutor,后面的四种线程池也是配置不同的ThreadPoolExecutor,如:public static ExecutorService newFixedThreadPool(int nThreads) { return new ThreadPool...原创 2018-11-05 19:04:31 · 205 阅读 · 0 评论