- 博客(18)
- 资源 (17)
- 收藏
- 关注
原创 Java数据结构:树之红黑树
1. 概述在前面的篇章已经写了Java数据结构:树基础及二叉树,对于树已经有了一定的了解。而红黑树在树中是比较重要的一种,运用也比较多,比如HashMap的源码中就用到了红黑树。通过此篇对红黑树的了解,后续会写一篇关于HashMap源码的解析。2. 红黑树的定义:红黑树,R-B Tree,全称是Red-Black Tree,又称为“红黑树”。它一种特殊的二叉查找树,它满足二叉查找树的特...
2019-08-31 06:45:06 469
原创 Android 屏幕适配
Android 发展到现在,已经到了Android Q。前几天的新闻,Google结束以“甜点”命名系统的方式,Android Q 改为了 Android 10。由于Android的开源,就会有诸多厂商,每家厂商会生产不同屏幕大小,不同分辨率的手机。身为一个Android开发者,就必须了解Android的屏幕适配。1.px 和 dp分辨率(px)分辨率就是手机屏幕的像素点。一般为屏幕...
2019-08-25 17:12:46 2447
原创 排序算法:插入排序
1. 基本思想要排序的一组数中,假定前n-1个数已经排序好,现在将第n个数插入到前面的有序数列中,使得着n个数也是排好顺序的,如此反复循环,直到全部排好顺序。2. Java实现 /* * 插入排序 */ public static void insertSort(int[] arr) { int temp = 0; ...
2019-08-19 23:23:15 207
原创 Android 约束布局(ConstraintLayout)的使用
1. 概述在Android中有许多的布局,比如 RelativeLayout,LinearLayout,FrameLayout 等,但是这些布局使用起来,需要一层层的嵌套。ConstraintLayout的诞生,是为了解决在开发中的复杂多层级布局的问题,在一定程度上进行布局的优化。这是Google的介绍:ConstraintLayout 官方文档2. 导入 ConstraintLayout...
2019-08-14 16:41:57 4019
原创 Java数据结构:树基础及二叉树
1. 树的简介1.1 树的定义树是一种特殊的数据结构,它可以用来描述有分支的结构,是由一个或一个以上的节点所组成的有限集合。1.2 树的特点a. 存在一个特殊的节点,称为根节点;b. 没有父节点的节点称为根节点;c. 每一个非根节点有且只有一个父节点;d. 除了根节点外,每个子节点可以分为多个不相交的子树;图中A节点就称为根节点,B、C、D 均为A的子节点。...
2019-08-14 14:01:36 441
原创 排序算法:选择排序
1. 基本思想在要排序的一组数中,选出最小的一个数与第一个位置的数交换;然后在剩下的数当中再找最小的与第二个位置的数交换,如此循环到倒数第二个数和最后一个数比较为止。2. Java实现 /* * 选择排序 */ public static void selectSort(int[] arr) { int temp; ...
2019-08-14 13:31:57 1028
原创 排序算法:冒泡排序
1. 基本思想冒泡排序算法是把较小的元素往前调或者把较大的元素往后调。对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。 针对所有的元素重复以上的步骤,除了最后一个。持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。2. Java实现 /* * 冒泡排序 */ public sta...
2019-08-14 10:52:48 234
原创 Java数据结构:队列
1. 概述队列是“先进先出”(FIFO,First InFirst Out)的数据结构。队列的概念就好比乘火车时候买票的队伍,先到的人当然可以优先买票,买完后就从前端离去准备乘火车,而队尾的后端又陆续有新的乘客加入。它有下列特性:a. 先进先出(FIFO)。b. 队列只允许在"队首"进行删除操作,而在"队尾"进行插入操作。 队列通常包括的两种操作:入队列 和 出队列。队列的示意...
2019-08-13 15:18:39 321
原创 Java数据结构:栈
1. 概述栈(stack)又称为堆栈,栈作为一种数据结构,是一种只能在一端进行插入和删除操作的特殊线性表。它按照先进后出的原则存储数据,先进入的数据被压入栈底,最后的数据在栈顶,需要读数据的时候从栈顶开始弹出数据(最后一个数据被第一个读出来)。栈通常包括的三种操作:push、peek、pop。push:向栈中添加元素。peek:返回栈顶元素。pop:返回并删除栈顶元素的操作...
2019-08-12 20:01:02 371
原创 Java数据结构:链表
1. 概述链表是一种数据结构,在内存中通过节点记录内存地址而相互链接形成一条链的储存方式。链表的插入和删除都比较快,缺点是查找比较慢。除非需要频繁的通过下标来随机访问数据,否则在很多使用数组的地方都可以用链表代替。相比数组而言,链表在内存中不需要连续的区域,只需要每一个节点都能够记录下一个节点的内存地址,通过引用进行查找,因此链表增删操作时间消耗很小,而查找遍历时间消耗很大。2. 链表的分...
2019-08-09 17:15:18 1539
原创 Java数据结构:数组
1.概述数组是用于储存多个相同类型数据的集合。数组既可以存储基本数据类型,也可以存储引用数据类型。数组是一种最简单的数据结构,它占据一块连续的内存(即使在物理内存中不是连续的,在逻辑上肯定是连续的)并且顺序存储数据。2.数组的创建使用new操作符来创建数组,语法如下:数据类型[] 数组名 = new 数据类型[]{元素1,元素2,…};或数据类型[] 数组名 = new...
2019-08-08 10:19:45 289
原创 System.arrayCopy()与Arrays.copyOf()的区别
作为一个Android开发者,对这两个方法挺陌生的,只有在分析阅读ArrayList的源码才算是真正接触到这两个方法。在此记录下这两个方法的用法及其源码。System.arrayCopy:将指定源数组中的数组从指定位置复制到目标数组的指定位置。实例:package zzw.cn.listtest;/** * @author 鹭岛猥琐男 * @create 2019/8/7...
2019-08-07 11:35:40 419
原创 ArrayList的使用及源码解析
1. 简介不管是做Android开发还是做Java开发,都会经常使用到ArrayList 。ArrayList底层基于数组实现容量大小动态变化。下面将介绍ArrayList的使用以及分析ArrayList的源码,从而对ArrayList有一个深入的理解。2. ArrayList的使用先看以下实例:package zzw.cn.listtest;import java.util...
2019-08-06 06:52:10 534
原创 Java设计模式六大设计原则
1.单一职责原则(Single Responsibility Principle)单一职责原则简称是SRP,就是Single Responsibility Principle三个单词的缩写。单一职责原则,就一个类而言,应该有且仅有一个原因引起类的变更。也就是说,一个类应该是一组高度相关的函数、数据的封装;也就是高内聚。例子:/** * @author 鹭岛猥琐男 * @creat...
2019-08-06 06:26:37 180
原创 Android进程优先级
1. 概述当系统内存不足时,Android系统将根据进程的优先级选择杀死一些不太重要的进程,优先级低的先杀死。进程优先级由高到低排列如下:a. 前台进程b. 可见进程c. 服务进程d. 后台进程e. 空进程2.前台进程前台进程是指正在与用户进行交互的进程,是最高优先级进程,判断为前台进程的因素有以下这些:1. 处于正在与用户交互的activity2. 与前...
2019-08-05 22:23:31 296
原创 HandlerThread 的使用及源码解析
1. 简述Android中耗时操作不能放在主线程,执行耗时操作都需要开启子线程来执行,执行完线程以后线程都会自动销毁。如果经常要开启线程,接着又销毁线程,这是很消耗性能的。可以选择的方案有:a. 使用线程池 (线程池的相关介绍可以参考之前的文章:Java线程池)b. 直接创建子线程(创建线程的方式可以参考之前的文章:Java创建线程的三种方式)c. 使用 HandlerThread...
2019-08-04 22:52:17 493
原创 IntentService 的使用和源码分析
1. 定义IntentService是Android里面的一个封装类,继承自四大组件之一的Service。IntentService,可以看做是Service和HandlerThread的结合体,在完成了使命之后会自动停止,适合需要在工作线程处理UI无关任务的场景。2. 实例实例模型:在页面按后退键退出的时候,退出当前页面的同时,开启 IntentService。直接看以下代码:创...
2019-08-03 21:25:57 318
原创 Java设计模式:建造者模式
1. 定义建造者模式,是将一个复杂的对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。创建者模式隐藏了复杂对象的创建过程,它把复杂对象的创建过程加以抽象,通过子类继承或者重载的方式,动态的创建具有复合属性的对象。2. 角色2.1 Builder:抽象建造者给出一个抽象接口,以规范产品对象的各个组成成分的建造。2.2 ConcreteBuilder:具体建造者实...
2019-08-02 21:58:06 176
ComponentDemo.zip
2020-05-22
Messenger示例代码
2019-06-26
AndroidAIDLDemo.zip
2019-06-19
Android Studio使用指南
2014-06-05
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人