
面试题解析记录
文章平均质量分 79
zhq217217
只要不停地走,再慢也会超越所有人。。。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
LruCache源码解析
lrucache,最近最少使用缓存策略,源码其实很简单,没有多少行。下面我们分两个部分来解析:第一部分:如何使用 /** * 存储的key类型 * 存储的value类型 * 设置最大存储容量 * 计算每个存储内容大小 */ LruCache<String, Bitmap> bitmapLruCache=new LruCache<String, Bitmap>(1024*1024){ @Overr原创 2022-03-10 19:01:31 · 1736 阅读 · 0 评论 -
Handler源码解析及自己写个handler
handler消息机制是安卓各个进程的核心,是程序可以持续运行而不退出的原因所在,但是原理却很简单,我们完全可以自己手写一个。下面我们的思路是,分析子线程中handler用法,分析源码,找出handler源码里的关键类,最后然后手写一个handler。第一部分:使用handler Thread thread=new Thread(new Runnable() { @Override public void run() { ..原创 2022-02-27 16:27:56 · 323 阅读 · 0 评论 -
HashMap源码解析(前奏)
hashmap源码解析可以说是面试中被问及频率比较高的了,主要还是因为hashmap的设计思路比较好,效率高。我今天不分析hashmap的扩容等内容,只分析hashmap的原理内容,以及手写一个hashmap。hashmap采用的数据结构是数组+链表,数组特点是增删效率低,但是查找(根据下角标查找)效率高,当然如果数有序数组则根据二分查找等算法效率也很高,而链表的特点是,增删效率高,但是查找需要遍历效率低(改为树结构后查找效率也很高了)。所以,我们能不能把二者的各自有点结合一下呢?既有数组的高效查找又有原创 2022-02-23 10:29:23 · 371 阅读 · 0 评论 -
拆分Okhttp
okhttp可以说是面试中被问到的频率最高的第三方框架了,应该说没有之一吧。那正好趁着找工作,复习拆分一下这个第三方库。第一部分:用到的设计模式1.建造者模式:比如 OkHttpClient、Request。为什么要用建造者模式?建造者模式使用特点就是,如果一个类有多个(三个吧)构造器,并且有些参数是非必填的,那么就适合用建造者模式。刚好这两个类所有的参数都是有默认值得(至少是非必填的);2.静态工厂模式:RequestBody.create();啥也不用说,就是简单。3.责任链模式:啥..原创 2022-02-19 22:21:55 · 395 阅读 · 1 评论