Android爱好者

生命不息 博客不止

模板

模板

“人情似纸张张薄,世事如棋局局新。” 正文

Java8 HashMap源码分析

深入分析Java8中的HashMap源码

来说是非者,便是是非人。 之前分析过java7的HashMap的原理,其实java7和java8对HashMap的改动还是比较大的,java7中HashMap使用的是数组和链表的形式存储的,这里可以看一下之前写的 《HashMap源码详解》,而java8对HashMap的改动是当链表的长度大于等于8的时候就会把它转化为红黑树,之前也特意分析过红黑树的源码, 《TreeMap红黑树源...

Android组件化开发

Android组件化开发的详细步骤

“虎生犹可近,人熟不堪亲。” 随着Android项目功能的不断增加,组件化开发已经逐渐被重视起来,组件化开发的好处是可以把各个模块拆开来单独开发,并且每个模块都可以拿来单独运行,这样极大的降低了开发的耦合度,有利于团队开发。 如果觉得有用就给个star吧 | ...

常见查找算法(Java代码实现)

常见查找算法(Java代码实现)

“责人之心责己,恕己之心恕人。” 正文 一,顺序查找 查找算法中顺序查找算是最简单的了,无论是有序的还是无序的都可以,只需要一个个对比即可,但其实效率很低。我们来看下代码 1 2 3 4 5 6 7 public static int search(int[] a, int key) { for (int i = 0, length = a.length; i <...

常见14种经典排序算法(Java代码实现)

常见14种经典排序算法(Java代码实现)

“一年之计在于春,一日之计在于晨。一家之计在于和,一生之计在于勤。” 正文 一,冒泡排序 排序算法其实有很多,冒泡排序基本上算是最简单的一种排序算法了。他的原理就和他的名字一样,通过不断的比较把小的数据不断的往前移。其实冒泡排序有很多变种,我们会一一来看。我们先看下最常见的一种代码 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 pu...

android EventBus源码解析

android EventBus源码解析

“自恨枝无叶,莫怨太阳偏。” 正文 eventBus3.1.1 eventBus主要用于数据之间的传递,使用也非常简单,就几个主要的方法,一个是register和unregister,这两个要成对出现,一般在onCreate中注册,在onDestroy中取消注册。还有几个方法post,postSticky,removeAllStickyEvents。其中post必须在regis...

Error(72) error unknown element user-permission found

Error(72) error unknown element user-permission found

“山中有直树,世上无直人。” 正文 android studio升级之后会出现这样一个问题,Error:(72) error: unknown element found. 解决方法是在项目的gradle.properties文件中添加 android.enableAapt2=false 如果项目下没有gradle.properties文件可以新建个 1 2 3 4 5...

LinkedBlockingQueue源码讲解

LinkedBlockingQueue源码讲解

“莫道君行早,更有早行人。莫信直中直,须防仁不仁。” 正文 源码:\sources\Android-25 说到LinkedBlockingQueue,不得不提到LinkedBlockingDeque,他俩差不多,只不过LinkedBlockingDeque是双向的队列,而LinkedBlockingQueue是单向的队列,我们看一下他的节点就知道了 Node 1 2 3 4...

ArrayBlockingQueue源码讲解

ArrayBlockingQueue源码讲解

“古人不见今时月,今月曾经照古人。” 正文 源码:\sources\android-25 ArrayBlockingQueue是一个数组阻塞队列,这个队列的元素是先进先出,head元素是最先加入的,tail是最后加入的,并且新的元素加入到tail,获取元素从head开始。他有两个int指针,putIndex指向队尾的下一个,是空,表示下一个存放的位置,takeInput指向队首...

LinkedBlockingDeque源码讲解

LinkedBlockingDeque源码讲解

“有钱道真语,无钱语不真。不信但看筵中酒,杯杯先劝有钱人。” 正文 源码:\sources\Android-25 LinkedBlockingDeque是双向链表阻塞队列,他维护的是个链表节点Node,和前面的分析的PriorityBlockingQueue有一点区别,PriorityBlockingQueue维护的是个数组。他和LinkedList很相似,不过LinkedLi...