- 博客(5)
- 资源 (3)
- 收藏
- 关注
原创 从源码分析LayoutInflate的inflate方法
LayoutInflater的inflate方法 public View inflate(@LayoutRes int resource, @Nullable ViewGroup root, boolean attachToRoot); resource:要创建布局的xml root:父视图 attachToRoot:是否将创建布局生成的view添加进父视图中 该方法会继续调用以下代码: pub...
2018-12-03 10:45:12
231
原创 Android动画总结
动画分为三种:View动画、帧动画和属性动画 View动画 View动画共有四种动画:TranslateAnimation、RotateAnimation、ScaleAnimation和AlphaAnimation。四个动画类都继承于抽象类Animation。 名称 标签 子类 效果 平移动画 TranslateAnimation 移动View 缩放动画 ScaleAnim...
2018-12-03 10:40:21
236
原创 红黑树分析笔记
阅读本文的前提 1、知道二叉查找树的概念,插入、删除和查找操作; 2、知道二叉树的左旋和右旋。 3、了解二叉平衡树(AVL树)的概念 红黑树的概念 红黑树是一种自平衡的二叉查找树,查找、插入和删除的平均时间复杂度是O(logN)。红黑树的每个节点都有一个颜色值(红或黑),具有以下性质: 1、每个节点不是黑色就是红色; 2、根节点是黑色; 3、如果一个节点是红色,则该节点的左、右孩子节点必须是黑色;...
2018-12-03 10:39:40
318
原创 HashMap源码分析
概述 本文源码针对Java8的HashMap。HashMap内部是由数组+链表或红黑树的结构实现的。HashMap默认初始化数组大小为16,负载因子是0.75,初始阀值12,每当数组元素的数量超过阀值后会扩容,每次扩容为旧空间大小的一倍,阀值也是增大一倍。 put() put()先判断要放入的值是否会哈希冲突,如果不哈希冲突,则直接在hash到的位置插入。 如果发生冲突,判断是是链表还是红黑树,链...
2018-12-03 10:38:38
106
原创 LruCache源码分析
LruCache的原理 LruCache主要靠LinkedHashMap的一个按访问排序的特性实现的,LinkedHashMap在构造时可传入accessOrder参数,为true时,LinkedHashMap在每次get方法时,会将获取到的当前节点移至末尾,从而实现LRU的思想。 LruCache源码分析 1、构造函数 /** 唯一的构造函数,需要传入缓存的最大值 */ public LruCa...
2018-12-03 10:37:54
139
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人