创建线程池的两种方式 1.使用Executors CachedThreadPool:可缓存的线程池,该线程池中没有核心线程,非核心线程的数量为I...
handler 的使用 分析1:(创建handler ) 分析二(创建Looper) 分析三(Looper.loop实现消息循环) 分析四(处理...
Bitmap占用内存大小的计算方式: Bitmap所占用的内存 = 图片长度 x 图片宽度 x 一个像素点占用的字节数 Bitmap编码 Bit...
SparseArray原理:SparseArray采用两个数组,用来存放key以及value值的,核心思想是通过二分查找来找到key对应的位置,...
当一个数组中大部分元素为0,或者为同一值的数组时,我们可以用稀疏数组来保存该数组。在稀疏数组中,数组下标为[0]的第一行元素分别代表原始数组的行...
上一篇我们讲了事件分发的过程,这一篇我们将会通过改变事件分发的过程解决滑动冲突 滑动冲突的常见场景 举个例子 我们常见的ViewPager和Li...
什么是事件 点击事件(Touch事件) 事件类型 怎么描述事件: MotionEvent 事件分发的本质: 将点击事件(MotionEvent)...
内存泄漏原因 本质:对象的引用未被释放,导致对象本身无法被有效的回收。(生命周期长的持有生命周期短的引用,导致对象无法被回收)。 内存泄漏常见场...
java泛型 一、泛型类的定义 public class Ponit { private T x; public Ponit(T x, T ...