
Android源码之路
CodeInfo_
站在巨人的肩膀上看世界
展开
-
EventBus源码分析
## 总结 1. 需要先通过register接口进行注册为订阅者,订阅方法才能生效,不再接收消息的时候主动调用 unregister取消注册,也避免内存泄漏(特别是一些有生命周期的activity等); 2. 只有通过注释@Subscribe声明为订阅者方法(消息处理)才能接收EventBus接口发送的消息,并且要求必须是public,非sstatic,非abstract,而且入参数量只能是1个; 3. @Subscribe注释提供了3个属性字段: 3.1 threadMode: 指明...原创 2020-08-02 18:38:33 · 404 阅读 · 0 评论 -
Android源码之路(一、IntentService)
前言 源码分析篇,分析过程也参考过各位大神的成果。知识在于分享,学会了就是自己的,有参考过的,也会尽量给出链接(看了很多,可能无法一一给出);希望共同进步,站在巨人肩膀上看世界! 参考:http://blog.youkuaiyun.com/smbroe/article/details/45009721 以下用法和源码分析基于android-27(即版本android 8.1.0) 要点总结 1.生...原创 2018-07-23 13:22:07 · 184 阅读 · 0 评论 -
Android源码之路(二、AsyncTask)
参考 https://www.baidu.com/link?url=QNRznJEBT25k0bpgVD3bOniOia2W85eiPIWrS93YFknyrHoFDGrJVtoax2ZYpiiErtRW7VD-sNEgCRNespIhSK&wd=&eqid=9a27957100030dcd000000065aac77c0 https://www.jianshu.com/p/7...原创 2018-07-25 14:20:38 · 248 阅读 · 0 评论 -
Java集合(一、HashMap)
参考:https://juejin.im/post/5b5bf507f265da0fa42ce89e 要点总结 1.HashMap内部数据元素(Map.Entry<key,value>)的存储采用的是数组+链表+红黑树(JDK8新增)的形式存储的,并且存储顺序是无序的,如图一所示,数组上每个节点所存在的元素的个数是不一定的;实现 Map<K,V>, Clo...原创 2018-07-28 13:44:41 · 283 阅读 · 0 评论 -
Java集合(二、LinkHashMap)
继承自HashMap,需要先查看"HashMap"一文先了解 要点总结 1.LinkHaspMap继承自HashMap,除了HashMap遍历无序的外,其余特性,比如扩容机制、key和value允许为Null等都是和HashMap一致; 2.LinkHaspMap内部额外维护了一个双向链表,在每次增删改查时,会增加或者调整链表的节点顺序,用于迭代时输出的顺序 3.默认遍历时是按照插入节点的...原创 2018-08-08 22:24:31 · 886 阅读 · 0 评论 -
Java集合(三、Hashtable)
Hashtable源码实现上和HashMap基本上没什么大的差别,有兴趣可以查看HashMap一章了解下。 要点总结 1.Hashtable不支持key或者value为null的情况,HashMap和LinkMap可以支持: 并非由于啥特别的原因,只是Hashtable源码进行put操作时,判断null抛出了NullPointerException异常,如下: ``` public s...原创 2018-08-19 11:16:51 · 262 阅读 · 0 评论