自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(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

原创 链表翻转

即:翻转一个单项链表算法:单向链表逆序递归反转法:遍历反转法:

2019-09-10 22:53:55 150

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除