Android爱好者

生命不息 博客不止

Android PriorityQueue和PriorityBlockingQueue源码解析

Android PriorityQueue和PriorityBlockingQueue源码解析

“贫居闹市无人问,富在深山有远亲。” 正文 源码:\sources\Android-25 PriorityQueue通过名字也可以看的出来,是优先队列,PriorityBlockingQueue是优先阻塞队列,这两个类其实方法都差不多,只不过PriorityBlockingQueue操作的时候会加锁ReentrantLock,PriorityQueue操作的时候是没有加锁的,代...

Link链表的反转

Link链表的反转

“有茶有酒多兄弟,急难何曾见一人?” 正文 上一篇简单介绍了LinkedList,代码都很简单,基本上没有什么可说的,这一篇就来介绍一下链表的使用,反转链表,这个链表和LinkedList是不一样的,因为LinkedList是双向链表,不需要反转也可以从后往前遍历,这里创建的链表是单向的,只能从前往后,不能从后往前,如果想要从后往前遍历,就需要把链表反转,先创建一个节点类 Li...

ArrayDeque源码详解

ArrayDeque源码详解

“在家不会迎宾客,出门方知少主人。” 正文 源码:\sources\android-25 ArrayDeque和ArrayList有区别也有相似的地方,他们都是数组存储数组,不同的是ArrayList存储是从数组位置的0开始的,而ArrayDeque有一个head和tail,head和tail可以指向数组的任何位置,head是指向数组的第一个元素,是有值的,tail是指向数组最...

LinkedList源码详解

LinkedList源码详解

“红粉佳人休使老,风流浪子莫教贫。” 正文 源码:\sources\android-25 LinkedList和ArrayList都是List,不同的是ArrayList是以数组的形式来存储的,而LinkedList是以链表的形式存储的,ArrayList很简单,没什么可说的,下面就简单看一下LinkedList,他里面有个节点Node,是双向的链表 Node 1 2 3 ...

TreeMap红黑树源码详解

TreeMap红黑树源码详解

“相逢不饮空归去,洞口桃花也笑人。” 正文 在分析源代码之前,最好要标注出处,因为在Java中和Android中同一个类可能代码就会不一样,甚至在Android中不同版本之间代码也可能会有很大的差别,下面分析的是红黑树TreeMap,在\sources\android-25中。 红黑树的几个性质要先说一下, 性质 1.每个节点是红色或者黑色的。 2.根节点是黑色的。 3.每...

KMP算法详解

KMP算法详解

“莺花犹怕春光老,岂可教人枉度春?” 正文 之前有记笔记的习惯,但都是私人笔记,并且写的都很随意,所以就很少写在公共平台,正好最近工作稍微清闲,打算整理一下,一方面加深记忆,一方面与大家共享,反正文笔不好,不过应该能看懂,尽量用通俗的大白话来描述。 OK,言归正传。在理解KMP算法之前,来看一个这样的问题,就是一个字符串是否包含另一个字符串,比如A字符串为ABCDEF,B字符串...

求Integer中二进制1的个数

求Integer中二进制1的个数

“马行无力皆因瘦,人不风流只为贫。” 正文 在上一篇中详细介绍了Android中的Integer类,其中有一个方法bitCount(int i),他表示返回二进制中1的个数 ,我们看一下 1 2 3 4 5 6 7 8 public static int countBit(int i) { i = i - ((i >>> 1) & 0x55555...

Integer源码详解

Integer源码详解

“相见易得好,久住难为人。” 正文 对于Integer这个类估计大家也都非常熟悉了,以前看过他的源码,但也只是粗略的看了一下,最近有时间认真的看了一下发现这个类设计的非常好,所以就打算记录下来与大家共享。我们看一下java项目中的Integer类大概有500多行,并且注释也很少, 而Android中的Integer大概有1000多行,当然他的注释也比较多 既然是要分析,那...

Android Matrix源码详解

Android Matrix源码详解

“两人一般心,无钱堪买金;一人一般心,有钱难买针。” 正文 Matrix是一个3*3的矩阵,通过矩阵执行对图像的平移,旋转,缩放,斜切等操作。先看一段代码 1 2 3 4 5 6 7 8 9 public static final int MSCALE_X = 0; //!< use with getValues/setValues public st...

Android Path的使用详解

Android Path的使用详解

“当时若不登高望,谁信东流海洋深?” 正文 这里来分析一下Android自定义控件中比较常用的另一个类Path 1 2 3 4 5 6 7 /** * The Path class encapsulates compound (multiple contour) geometric paths * consisting of straight line segments, ...