自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Chong的博客

每天都在学习新知识,但温故也能知新。

  • 博客(26)
  • 资源 (2)
  • 收藏
  • 关注

原创 Android事件分发机制之一图胜千言

事件分发源码篇已经有了。但那需要时间,如果想快速了解事件分发机制。 看这个就行了!n(≧▽≦)n

2018-03-15 21:50:07 253

原创 preDebugAndroidTestBuild

错误Error:Execution failed for task ':app:preDebugAndroidTestBuild'.> Conflict with dependency 'com.android.support:support-annotations' in project ':app'. Resolved versions for app (26.1.0) and...

2018-05-05 10:58:43 448

原创 广播基础回顾

一、简介广播是一个典型的发布-订阅模式,也叫做观察者模式。最大的特点就是:发送方并不关心接收方是否接到数据,也不关心接收方如何处理数据。可以说达到完全解耦。二、基本要素广播的整个过程有3个基本要素发送广播的Broadcast接收广播的BroadcastReceiver传递数据的Intent三、广播分类Android的广播分为四类:普通广播、有序广播、本地...

2018-05-04 22:50:00 219

原创 图的连通法之普里姆算法和卡鲁斯卡尔算法

最小生成树连通图:图的连通其实就是树,图的最小连通图其实就是最小生成树。树:如果一个无向连通图中不存在回路,则这种图称为树。生成树:无向连通图G的一个子图如果是一颗包含G的所有顶点的树,则该子图称为G的生成树。最小生成树:或者称为最小代价树,对无向连通图的生成树,各边的权值总和称为生成树的权,权最小的生成树称为最小生成树。一个连通图的生成树是一个极小的连通子图,它含有图...

2018-03-20 17:17:02 1539

原创 图的深度优先遍历和广度优先遍历

图的遍历图的遍历是和树的遍历类似,我们希望从图中某一顶点出发访遍图中其余顶点,且使每一个顶点仅被访问一次,这一过程就叫做图的遍历(Traversing Graph)。重复访问顶点就不叫做遍历了。关于图的基本概念,理论知识不想说了。太繁琐~直接上图,这个应该都能看懂。左图是一个图,右图是根据图生成的矩阵。[v0][v1]代表v0顶点到v1顶点的路径权重为10可以看见右...

2018-03-19 22:51:18 860

原创 快速排序

简介快速排序是冒泡排序的一种改进。开发中,快速排序用的非常多。选择排序的思想也非常简单 通过一趟排序将要排序的数据分割成独立的两部分,其中前一部分的所有数据都比另外后一部分的所有数据都要小。然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。核心代码public class QuickSort { publ...

2018-03-17 19:13:43 260

原创 堆排序

简介堆排序是利用完全二叉树这种数据结构当成顺序存储结构所设计的一种排序算法。堆排序的思想我不想说那么多理论,单纯的说下堆排序的步骤。步骤一:首先将一个数组的所有元素当成一个二叉树操作。这个操作叫创建堆,目的是对于每一个非叶子节点,形成 父节点 < 左孩子 < 右孩子 这种结构。步骤二:取出根节点,进行输出。然后不断将最后一个子节点放到根节点进行创建堆操作。再取出根节点...

2018-03-17 16:38:44 210

原创 插入排序之希尔排序

简介希尔排序(Shell’s Sort)是插入排序的一种又称”缩小增量排序“(Diminishing Increment Sort),是直接插入排序算法的一种更高效的改进版本。希尔排序是非稳定排序算法。希尔排序的思想 因为真的确定不了增量,所以可以使用while(true)这种方式。break条件是增量为1。按增量分组进行比较,随着增量的缩小。每组包含的元素越来越多,到最后增量为1就...

2018-03-17 14:19:49 204

原创 插入排序之二分法插入排序

简介二分法插入排序没有排序,只有查找。所以当找到要插入的位置时。移动必须从最后一个记录开始,向后移动一位,再移动倒数第2位,直到要插入的位置的记录移后一位。二分法插入排序的思想 对于每次循环,都有left,mid,right3个局部变量做支持。将要插入的元素同mid位置元素比较,选择left - mid-1还是mid+1 - right。最后记录left的位置,这个位置就是要插入的...

2018-03-17 13:49:50 3122

原创 插入排序之直接插入排序

简介直接插入排序也是很简单的排序,属于插入排序中的一种。直接插入排序的思想 从数组下标1元素开始,0和1比较并交换。0-1成为一个有序序列。接着元素2和0-1比较并交换,0-2成为一个有序序列。以此类推。核心代码/** * 直接插入排序 * * @param a */public static void insertSort(int[] a) {...

2018-03-17 13:49:12 247

原创 蛮力法之选择排序(简单易懂)

简介选择排序也属于基本的教学式排序,真正的开发基本不会独立使用。同样属于蛮力法。选择排序的思想也非常简单 首先假设元素0是最小值,用index保存。遍历所有元素,如果碰到比元素0**更小**的。index记录这个更小的元素的下标。遍历比较完后,发现index改变。说明有最小值,则将这个最小值和元素0进行交换。这样,第一次遍历完。找到最小值。接下来,同样的方式从元素1开始假设、比...

2018-03-17 11:14:54 3257

原创 蛮力法之冒泡排序(简单易懂)

简介冒泡排序属于基本的教学式排序,真正的开发基本不会独立使用。它属于蛮力法。冒泡排序的思想非常简单 遍历所有元素,将元素0和1,1和2,2和3这样进行比较。值大的放到后面,像冒泡一样向上升。遍历完第一遍,数组的最后一个值一定是最大值。然后再进行遍历、比较。完后,数组的倒数第二个值为第二大值。以此类推!核心代码/** * 冒泡排序 * * @param a...

2018-03-17 10:40:32 1886

原创 Stack源码分析

Stack源码分析Stack继承自Vector,Stack本身的方法很少,大多数都是依赖父类Vector的。构造方法 public Stack() { }功能方法empty public boolean empty() { return isEmpty(); } // Vector.java ...

2018-03-16 16:54:04 232

原创 Vector源码分析

Vector源码分析继承实现public class Vector<E> extends AbstractList<E> implements List<E>, RandomAccess, Cloneable, SerializableAbstractList继承了AbstractCollection抽象类,实现了最基本的集合的方法。大...

2018-03-16 16:51:22 238

原创 LinkedList源码分析

LinkedList源码分析继承实现public class LinkedList<E> extends AbstractSequentialList<E> implements List<E>, Deque<E>, Queue<E>, Cloneable, SerializableLinkedList 是一个继...

2018-03-16 16:49:26 204

原创 ArrayList源码分析

ArrayList源码分析继承实现public class ArrayList<E> extends AbstractList<E> implements Cloneable, Serializable, RandomAccesspublic abstract class AbstractList<E> extends AbstractCol...

2018-03-16 16:43:44 217

原创 算法的时间复杂度和空间复杂度

简介算法复杂度分为时间复杂度和空间复杂度。时间复杂度算法执行所需的时间长短空间复杂度算法执行所需的内存空间大小时间复杂度这里不说那些难懂的计算方式。只会列出部分级别的时间复杂度以及对应的例子。选择算法时可以对号入座。下面是各个级别对应的走势。 画的是真心不规范,只能把代表的大致走势画出来。 O(n^2)和O(n^3)差不多的走势,只不过后...

2018-03-16 16:12:59 334

原创 MVC、MVP和MVVM的原理与比较

MVC模式原理MVC,即Model-View-Controller,意味:模型、视图和控制器。Model程序需要操作的数据来源。通常是从数据库、网络请求或者是Bean数据。负责提供数据View程序用来展示内容的界面。通常是Activity、Fragment等UI组件。负责展示数据Controller程序中用于处理Model数据业务逻辑并将结果输送给View的中间层。...

2018-03-16 12:31:25 407

原创 DataBinding使用与解惑

简介DataBinding框架是Google在2015年的I/O大会上推出的。为了解决将数据传送到View上的问题。按照一般的做法,我们书写xml布局,Activity上查找控件。将数据展示到控件上。DataBinding将这一过程简化 我们在xml布局的控件上直接就能使用数据Activity中一句代码就能将数据发送到控件上用极简的方式实现这一过程使用第一步:开...

2018-03-15 16:31:21 364

原创 AndroidStudio的构建过程

当按下这个绿色的小三角形按钮后,AS到底对我们的Android项目做了什么。当然编译之前必须选择要部署apk的设备。下面是Gradle Console窗口打印的日志:Executing tasks: [:app:assembleDebug]:app:buildInfoDebugLoader:app:preBuild UP-TO-DATE:app:preDebugBuild UP...

2018-03-15 11:33:26 2619 2

原创 理解代理模式

简介代理模式,也叫做委托模式,分为:静态代理动态代理代理模式也是平时比较常用的设计模式之一,代理模式有代码简洁,高扩展性的特性。主要目的 为访问者提供一个代理,以达到限制某个对象的访问。也就是说想访问一个对象,其实我给你的是一个代理,不让你直接使用我。也就是说不能通过new的方式得到你想要的对象,只能通过访问代理类才能使用。这样的话,我们就实现了内部对象的保护 。而且如果有一...

2018-03-15 09:54:04 355

原创 Android关于aidl的理解

AIDL简介在Android中,进程之间原则上是不能进行通信的。但偏偏Android从四大组件到框架、底层到处都是IPC的影子。AIDL就是IPC方式之一。AIDL(Android 接口定义语言) 是 Android 提供的一种进程间通信 (IPC) 机制。我们可以使用它在两个不同进程之间的Client与Server进行通信。使用AIDL步骤使用aidl大致分为三块,编写a...

2018-03-14 16:25:54 685

原创 适合的才是最好的-RxJava篇

对于程序猿来说,Demo是最好的起手。而对于RxJava来说,你可以简单理解成:是一个观察者模式框架替代AsyncTask成为更好的异步操作工具即便逻辑再复杂,对于RxJava来说就是:简洁首先上Demo:public static void main(String[] args) { // 0.准备一些数据 Integer[] numbers = { 1,

2018-01-24 17:35:55 354

原创 android源码下载

android源码下载

2017-06-20 20:30:06 664

原创 android 事件分发机制(源码解析)

android 事件分发机制(看完即懂)android事件分发机制很多人都写,但我看的感觉不是很明白。讲解的时候经常略过一大段,有的还是用的老版代码,弄的我似懂非懂的。不如我自己研究下源码,完整的把流程捋一遍。算是巩固一下吧!Android事件分发机制,有点基础的人都知道。事件的分发是由Activity到ViewGroup到View传递的。PhoneWindow和DecorView只是起到中转的作...

2017-06-20 10:01:08 493

原创 简述Java中Class类的作用与快速理解

在程序运行期间,Java运行时系统始终为所有的对象维护一个被称为运行时的类型标识。这个信息跟踪着每个对象所属的类。JVM利用运行时信息选择相应的方法执行。而保存这些信息的类称为Class。可能容易产生混淆,容易想到class。不过二者没什么关系,class不过是描述类的一个关键字。而Class却是保存着运行时信息的类。它能做什么?Class类可以帮助我们在程序运行时分析类,说白了就是获取类中的值。...

2017-03-09 15:20:27 12620 2

Java两种代理模式案例

代理模式的小案例,静态代理和动态代理都有。不想写代码的可以下载下来看看。

2018-03-15

AIDL的小demo

aidl的简单的例子。本来想免费的,谁知道最少都得要2分。

2018-03-14

空空如也

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

TA关注的人

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