自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(32)
  • 收藏
  • 关注

原创 查看电脑有几个系统

1. 如何查看电脑装了几个系统 在/boot/grub/grub.cfg 文件中查看,set default="0" 这一选项是用来选择默认系统的,0 即第一个启动的。menuentry 'Debian GNU/Linux, with Linux 3.2.51-trace' --class debian --class gnu-linux --class gnu --class os { --- 0...}menuentry 'Debian ...

2020-10-31 17:37:48 2922

原创 《 android NDK 》 C++语言入门总结

c++ 构造函数 析构函数 初始化列表 友元函数 内联函数 模板 内联函数

2020-06-03 11:34:30 362

原创 《 android NDK 》C语言入门总结

前言: 2019 手机直播卖货火了起来,手机扫描文件,人脸识别等好多技术也越来越火。方便人们的技术以后会涉及生活的更多地方。因此,这种技术以后是种趋势,会需要很多研发人才。作为安卓开发者,选择音视频开发方向或者NDK是个不错的选择。而这个方向学习 c/c++ 是必须的,这里我们先学习c语言。c语言入门 1.C语言的编译过程:预处理 预处理阶段主要处理include和define等。它把#include包含进来的.h 文件插入到#include所在的位置,把源程序中使用到的用#defi...

2020-05-17 22:12:49 315

原创 Git上没有线上版本代码,我用反编译计术上线了紧急版本

9102年的10月29号下午,我美滋滋的从wc回来。然后,被告知需要紧急上线一个版本。由于公司有一个域名出现了问题,有些配置需要修改。尴尬了,因为来公司一年一直都是按时迭代,没有出现过这种紧急情况。所以我最近两个版本上线后没有及时把代码推送到git。还有一个原因就是这个版本测试中,需要做下个版本需求。切换分支太烦,所以哈哈哈。。。常在河边走,记得常换鞋。一定要记得及时提交代码。。。 ...

2019-11-01 20:37:42 607 1

原创 android__进程保活最新适配

“安卓手机为什么老是这么卡”, “安卓手机高配置的低能儿”作为一个安卓开发工程师,不知道听到别人这么说安卓的时候,你怎么感想。之前遇到个问题,app在后台杀死后,用户进行暖启动,用户会直接进入之前浏览过的页面。这时公共bean的数据是没有的,但是每次后台请求数据时,是需要各种请求头的,这时就会出错。当时,只有一年工作经验的我第一想到的就是保活,而且当时觉得保活很帅,我想...

2019-09-17 15:00:05 1508

原创 算法__排序总结

排序是将一组乱的数据按一定准则排好顺序。一般按照时间复杂度大概分为三类: 一: O(n^2) 冒泡排序,选择排序,插入排序,希尔排序(性能优于O(n^2),差于O(nlog)); 二: O(nlogn) 快速排序,归并排序,堆排序; 三:O(n) 基数排序,桶排序,计数排序。根据其稳定性:稳定排序和不稳定排序。 ...

2019-09-07 23:49:45 402 2

原创 算法__基数排序

基数排序:按照从右往左的顺序,依次将每一位都当作一次关键字,然后按照该关键字对数组排序,同时每一轮排序都基于上轮排序后的结果;当将所有的位排序完之后,整个数组都达到了有序状态。基数是什么呢?对于十进制整数,每一位都可能是0~9其中的某一个,总共10种可能,那10就是它的基数。同理二进制数字基数为2,字符串,如果使用的是8位的扩展ASCII字符集,那么基数是256.例子:给个原始数组 ...

2019-09-07 23:49:35 220

原创 算法__归并排序

归并排序:利用递归与分治技术将数据序列划分成为越来越小的半子表,在对半子表排序后,再用递归方法将排好的半子表合成为越来越大的有序序列。例子:8 2 1 6 5 7 4 3 拆分: 左子树:8 2 1 6 右子树:5 7 4 9 继续拆分: 左子树:8...

2019-09-07 20:25:33 169

原创 算法__希尔排序

希尔排序:插入排序的一种优化排序算法,把待排序的数组按一定数量的分组,对每组使用直接插入排序算法排序;然后再缩小数量继续分组排序,直至整个数组分成一组,排序完成。例子:5 2 6 7 9 1 3 4 选择增量gap=length/2,缩小增量继续gap=gap/2,最后形成的增量序列为:4,2,1。第一次增量为4:即:坐标相差4的元素进行插...

2019-09-07 17:16:24 140

原创 设计模式__策略模式

策略模式: 定义一系列的算法,并将每一个算法封装起来,而且使他们还可以互相替换,使用场景:1. 针对同一类型的多种处理方式,具体的行为差别; 2. 需要安全地封装多种同一类型的操作时; 3. 同一个抽象类有多个子类,需要if-else或者switch来选择时;案例:外卖有两种优惠一种是满减,一种是第二次消费减20...

2019-09-04 23:37:08 197

原创 设计模式__适配器模式

适配器模式:把一个类的接口变换成客户端所期待的另一种接口,从而使的原本因接口不匹配而无法在一起工作的两个类能够在一起工作。使用场景:系统需要现有的类,而此类的接口不符合系统的需要,即接口不兼容; 想要建立一个可以重复使用的类,用于与一些彼此之间没有太大关联的一些类,包括一些可能在将来引进的类一起工作; 需要一个统一的...

2019-09-04 00:30:44 183

原创 设计模式__单例模式

单例模式:确保一个类只有一个实例,而且自行实例化。单例模式是我们用的最多的模式,也应该最先了解的模式。它的实现有很多种,我们一一道来,置于使用场景我们在优点中一起分析。在实现单例之前我们首先需要注意以下几点: 1. 构造器私有化-------一个项目只需要一个该类实例,确保不能随便new出一个新实例; 2. 建一个静态方法返回单例类对象--------该项目中可以获得这个类...

2019-09-01 18:52:24 251

原创 设计模式__代理模式

代理模式:为其他对象提供一种代理以控制对这个对象的访问。使用场景:当无法或者不想直接访问某个对象或访问某个对象存在困难时可以通过一个代理对象间接的访问,为了保证客户端使用的透明性,委托对象与代理对象需要实现相同的接口。例: 现在我们想买一个美国版本的苹果手机,我们得游过太平洋才能到达美国买。很明显,我们对买手机这件事实现有点困难。我们需要一个代购公司帮我们买一下。在这个例子中:...

2019-08-30 00:29:32 230

原创 算法__插入排序

插入排序:就是将数据插入到已经排好序的数列中,使得最终的数列顺序正确。举个例子:5 8 3 5 2 第一轮:这个数组,我们可以先把 5 这个第一位数字视为已经排好的数列,将8加入顺序排好的队列中。1. 8和5做比较,8大于5,所以8排在5右边;5 8 3 5 2 第二轮:现在 5 8 就是已经排好的数组,将3插入...

2019-08-27 01:33:31 187

原创 算法__选择排序

之前写到过冒泡排序。但是,冒泡排序需要一个个比较,交换位置。这样会有很多的读写操作,会影响cpu效率。所以,出现了选择排序。选择排序,每次循环选择最小的数字与这次循环的第一位置的数字,交换位置,直至最后。举个例子,说明一下:7 2 5 1 3 4 8 6 第一轮: 1. 7 和2比较,2小,最小变量minNumber=...

2019-08-27 01:11:53 153

原创 Java__泛型

泛型是java中的基础知识,大家学习java的时候都学习过,平时也经常使用,今天在这里总结一下泛型。1.为什么我们使用泛型呢?两种情况: 第一种: List list = new ArrayList(); list.add("123"); list.add(123); for (int i = 0; i < list.size(); i++) { St...

2019-08-23 12:46:25 192

原创 设计模式__建造者模式

定义: 将一个复杂对象的构建和表示分离,使得他的同一个构建可以有不同的表示。(主要是对产品的封装,强调构建和表示)适合场景:1. 一个复杂产品,不同方法使用顺序不同,表示不同; 2. 一个产品构建是参数较多; 3. 需要对一个比较复杂的对象进行封装;接着之前的主题,封装一个主题。主题中的好多方法使用顺序不同,表示不同。...

2019-08-21 10:55:50 163

原创 算法__优先队列

最大优先队列:无论入队顺序,最大的数字先出队;最小优先队列:无论入队顺序,最小的数字先出队;7 5 4 2 3 1 二叉树:插入一个数字 8: 8 大于 4,4和8交换; 8 大于7 ,8和7交换。代码如下:/** * 优先排序(最大优先队列) */public class TestPro { ...

2019-08-20 20:45:52 321

原创 算法__堆排序

二叉堆是一种完全二叉树,堆可以分为最大堆和最小堆。最大堆:父节点的值都大于两子节点的值;最小堆:父节点的值都小于子节点的值。图中就是一个最大堆。1.那一组数据如何成为一个最大堆呢7 1 3 10 5 2 8 9 6 先将它弄成二叉树看看:我们先看一下 10这个数字,它比它的子节点都大,但是大于父节点。所以,我们得将...

2019-08-20 20:25:59 184

原创 算法__桶排序

上一次的计数排序不能对浮点数排序,所以有了桶排序。桶排序:新建一个集合,每个元素中是一个集合来存储一个局域的数,然后遍历这个集合。2.5 1.3 3.6 0.3 5.5 桶的数量:可以是数的个数。桶的区域 = (最大数 - 最小数)/ (桶的个数 - 1) = (5.5 - 0.3)/ 4 = 1.3如图所示,最后一个只...

2019-08-19 18:53:10 209

原创 算法__计数排序法

计数排序法:用一个数组从小到大记录数组中相应大小数的次数,然后遍历这个数组记录的次数排序。91 95 99 94 96 91 92 93 1. 创建一个数组记录相应数字出现次数的数组; 数组的大小 = 最大数字 -最小数字 +1; size = 99 - 91 + 1 = 9;2. 遍历数组,用新数组记录次数;(用最小的数 ...

2019-08-19 16:54:39 319

原创 数据结构__栈和队列

栈:一种元素先进后出(First in Last out,FILO)的线性数据结构。最早进入栈元素的位置为栈底,最后进入栈元素的位置为栈顶。栈是一种逻辑结构,它的物理存储可以是数组,也可以是链表。数组的实现:链表的实现:队列:也是线性数据结构,不同于栈,它是先进先出(First in First out)。队列的出口端是队头,进口端是队尾。数组的实现:队列:...

2019-08-17 17:23:04 124

原创 算法__快速排序

快速排序:选择一个基数,分别从数组的左边和右边与基数比较,大的放在基数的右边,小的放在基数左边。然后,再在基数的左右选择基数排序直至最后数组排序好。快速排序右两种实现:占坑法和互换法。占坑法:4 7 3 5 2 6 1 8 选择基数(我们一般选择第一个数位基数) pivote=4,两个指针 left =>4,right =>8。...

2019-08-16 16:51:56 192

原创 算法__鸡尾酒排序

鸡尾酒排序:鸡尾酒排序是冒泡排序的升级,冒泡排序在第一轮比较完之后,会从0位继续比较;鸡尾酒排序是在第一轮排序完之后从尾部往前比较。举个例子:2 3 4 5 6 7 8 1 冒泡排序: 第一轮:1. 2和3比较,不交换; 2. 2和4比较,不交换; ...

2019-08-15 16:47:19 197

原创 算法__冒泡排序

冒泡排序:从数组的0位置开始往右开始一个个比较大小,如果坐标小的数大于坐标大的数,则两个坐标的数交换,然后再和下一个数比较,直至整个循环完则顺序排好。直接举个例子:5 2 3 1 6 7 9 8 第一轮: 1. 5和2比较,5大于2,则5和2交换 2 5 3 1 6...

2019-08-15 14:48:26 169

原创 算法__判断一个整数是否是2的乘方

问题一:实现一个方法,判断一个正整数是否是2的乘方(比如16是2的4次方,返回True;18不是2的乘方,返回False)。解:二进制数的每一位都是2的乘方,也就是说每一个2的乘方的二进制都是第一位是个1,剩下的都是0。比如: 16:10000; 32:100000。 再看一下整数减1,比如: 15:01111; 31:011111; ...

2019-08-14 12:20:41 358

原创 设计模式__抽象工厂模式

定义:为创建一组相关或者是相互依赖的对象提供一个接口,而不是需要指定他们的具体实现。(就是一个工厂不止生厂一个产品而是几个产品的组合)场景:工厂模式中我们一个产品在购买状态或是没有购买状态下,还会有UI的不同(主题不同)。对于这两种状态我们会有不同的组合,所以我们的工厂就会对外生产出各种状态不同主题的产品。状态(产品)基类:public abstract class ViewStat...

2019-08-13 23:20:18 127

原创 算法__寻找缺失的整数

题目一:一个无序数组里有99个不重复的正整数,范围1到100,唯独缺少一位整数,找出这个整数。解:求出1到100的所有数的和减去数组中数的和就是缺失的数。public int thisNumber(int[] a) { int s = 100 * 101 >> 1; int size = a.length; for (int i = 0; i <...

2019-08-13 19:52:53 451

原创 算法__求最大公约数

我们在小学时候就学过好几种求最大公约数的方法:辗转相除法,更相减损法,短除法。辗转相除法:是用较大的数除以较小的数。如果整除则较小的数就是这两个数的最大公约数,如果没有的话,就用较小的数和余数中大的数除以两个数中较小的数,直至整除为止,最后的除数就是最大公约数。更相减损法:先判断两个数是否为偶数,如果是的话先除以2,然后较大的数减去较小的数,直到减数和值相等为止。最后的值再乘以约掉的2的个...

2019-08-13 17:49:47 140

原创 算法__判断链表中是否有环,并找入环对象

链表:是不基于物理连接的列表,是靠前对象引用后边对象组成一串对象。(如下) 链表中出现了环,就是我们中的最后一个引用又指回了链中的一个对象。(如下)我们就是想判断出链表中是否有环,不判断的话,我们就可能在取链中数据时进入死循环。该如何判断这个列表中是否有环,只要我们判断在这个链子是否有相同的指向。也就是两个对象的next指的对象一样。先写个对象publ...

2019-08-13 17:12:33 154

原创 设计模式__工厂模式

定义:工厂模式定义了一个接口,让使用者更简洁,正确的实例化对象。用处:工厂模式适合较为复杂的对象的创建。但是其实工厂模式没有用的那么模块化,我们平时看到的好多源码就是工厂模式。例子:在一个产品详情页面,一个产品的状态有好几种,没有购买,购买了。。。我们可以用不同的产品来封装不同的状态,这样这些状太更加整洁,而不是在很多的if-else中凌乱。 先定义一个状态的抽象类,来约束子类封装不...

2019-08-13 11:20:20 120

原创 安卓开发小知识总结(一)

1. 查看app的activity任务栈 C:\Users\Administrator\Desktop>adb shell dumpsys activity -p 包名 > taskinfos.txt dumpsys ---adb shell指令,用于查看手机运行数据。 -p 之后写我们app的包名 > 输出文件名称(便于查...

2019-05-08 19:36:05 189

空空如也

空空如也

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

TA关注的人

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