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