- 博客(12)
- 收藏
- 关注
原创 8_Activity的setContentView源码原理
setContentView是怎么把视图绘制出来的Activity#setContentView(int resID)方法会调用getWindow().setContentView(layoutResID)其中有几个需要注意的:getWindow():返回的是new PhoneWindow(this)(在attach方法中赋值)PhoneWindow继承Window,重写Windo...
2019-09-26 23:12:31 182
原创 9_WindowManagerServer源码原理
Window是一个抽象的概念,每个Window都对应着一个View和一个ViewRootImpl,Window和View通过ViewRootImpl来建立联系,因此Window并不是真实存在的,它是以View的形式存在的。Window中使用的是桥接模式,在实际使用中无法直接访问Window,对Window的访问必须通过WindowManager。window接口中会调用WindowMana...
2019-09-26 23:08:55 155
原创 5_RxJava源码原理
RxJava 变换操作符 map、flatMap、concatMap buffer谈谈对于RxJava的理解,可以尝试描述一些使用场景,以及原理操作符有几大类:创建操作符 变换操作符 组合/合并操作符 功能性操作符 过滤操作符 条件/布尔操作符实例开发应用场景有:线程控制(切换/调度) 背压 网络请求轮询 网络请求嵌套回调 功能防抖 网...
2019-09-26 22:13:59 187
原创 10_Activity启动流程源码原理
对Activity启动流程的了解:AMS和ActivityThread涉及到的源码?我们以启动微信为例,看看启动流程是怎样的。简单概括启动微信的流程就是:1.Launcher通知AMS 要启动微信了,并且告诉AMS要启动的是哪个页面也就是首页是哪个页面2.AMS收到消息告诉Launcher知道了,并且把要启动的页面记下来3.Launcher进入Paused状态,告诉AMS,你去...
2019-09-25 23:13:43 402
原创 11_Google Protocol Buffer
Google Protocol Buffer( 简称 Protobuf) 是 Google 公司内部的混合语言数据标准。他们用于 RPC 系统和持续数据存储系统。Protocol Buffers 是一种轻便高效的结构化数据存储格式,可以用于结构化数据串行化,或者说序列化。它很适合做数据存储或 RPC 数据交换格式。可用于通讯协议、数据存储等领域的语言无关、平台无关、可扩展的序列化结构数据格式。...
2019-09-24 22:00:43 154
原创 3_Eventbus源码原理
用过EventBus吗?实现原理是什么?有什么优缺点?1.EventBus.getDefault().register(this);其中getDefault()是一个单例方法,保证当前只有一个EventBus实例:public static EventBus getDefault() { if (defaultInstance == null) { ...
2019-09-24 21:50:53 180
原创 10-HashMap
HashMap是用哈希表(直接一点可以说数组加单链表)+红黑树实现的map类。HashMap构造器static final float DEFAULT_LOAD_FACTOR = 0.75f;final float loadFactor;public HashMap() { this.loadFactor = DEFAULT_LOAD_FACTOR; // all oth...
2019-09-10 23:09:46 241
原创 7-HashSet
HashSet中不允许有重复元素,这是因为HashSet是基于HashMap实现的,HashSet中的元素都存放在HashMap的key上面,而value中的值都是统一的一个private static final Object PRESENT = new Object();。HashSet跟HashMap一样,都是一个存放链表的数组。HashSet的构造器public HashSet(...
2019-09-10 22:59:58 139
原创 2-Collection
Collection简介是一个接口,继承Iterable(有一个Iterator方法)。Collection是最基本集合接口,它定义了一组允许重复的对象。Collection接口派生了两个子接口Set和List,分别定义了两种不同的存储方式。...
2019-09-10 22:57:19 149
原创 4-Set
Set接口继承于Collection接口,它没有提供额外的方法,但实现了Set接口的集合类中的元素是无序且不可重复。特征:无序且不可重复。public interface Set<E> extends Collection<E> { int size(); boolean isEmpty(); boolean contains(Objec...
2019-09-10 22:55:40 304
原创 合并多个单有序链表(假设都是递增的)
大体思路:使用递归步骤:判断L1,L2是否为空 创建一个头指针 判断当前L1,L2指向的节点值的大小.根据结果,让头指针指向小节点,并让这个节点往下走一步,作为递归函数调用的参数放入,返回的就是新的两个值的比较结果,则新的比较结果放入头结点的下一个节点. 返回头结点/** * Definition for singly-linked list. * struct ListN...
2019-09-10 22:54:10 743
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人