自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

黄庆庆的世界

失败的人只有一种,那就是抵达成功之前放弃的人!

  • 博客(37)
  • 资源 (14)
  • 收藏
  • 关注

原创 Android集合之SparseArray、ArrayMap详解

前言作为一个Anndroid开发人员来说,我们大多数情况下时使用的Java语言,自然在一些数据的处理时,使用到的集合框架也是Java的,比如HashMap、HashSet等,但是你可否知道,Android因为自身特殊的需求,也为自己量身定制了“专属”的集合类,查阅官方文档,android.util包下,一共捕获如下几个类:SparseArray系列(SparseArray,SparseBool...

2018-07-31 17:59:32 32881 24

原创 最新最全阿里云CentOS服务器jdk+tomcat+mysql配置

jdktomcatmysqlhttps://www.jianshu.com/p/a614c9a1417c

2019-06-29 00:27:56 864

原创 Android开发之复杂布局嵌套(ScrollView+TabLayout+ViewPager+RecyclerView)导致冲突的解决办法

前言最近在做一些项目和毕业设计,所以自从上次梳理完数据结构之后,一直想写些什么,但是又没有比较好的内容,所以博客从过完年之后就停更了很长很长很长一段时间,不过这次在做项目的时候,正好遇到一个我本以为很简单,结果折腾了好久的一个问题,其实这个问题对于做Android开发的同学来说,并不陌生,那就是滑动布局的互相嵌套。当然并不仅限于标题中写的这种嵌套,只要是可滑动的布局,例如GridView,各种...

2019-03-28 17:05:31 14320 16

原创 数据结构梳理(6) - 图

前言这段时间偷懒了,上次二叉树写完之后,一个多星期没更新博客了,也没学啥东西,就一直咸鱼,所以今天赶紧脱离舒适区,继续把数据结构梳理完,目前为止,已经梳理了线性表、链表、栈、队列、二叉树,这次轮到图了,不出意外,图是数据结构系列的最后一篇,因为最基本的数据结构也就是这些,当然肯定还有其它各种各样的数据结构,实际开发中也会用到各种各样的高级容器,但是目前我的水平还不足够,对其它更高级的数据结构了解...

2018-12-21 20:09:38 1057

原创 数据结构梳理(5) - 二叉树

前言接上次的队列,我们今天来梳理一下既复杂又简单的数据结构,就是树,大致还是按照之前的流程,先手动实现一遍,然后再学一些树在时实际开发中的不同类型,例如二叉排序树、堆等,主要是针对二叉树来说。目录1、二叉树的特性和基本操作2、基于数组实现二叉树3、基于链表实现二叉树4、二叉排序树5、平衡二叉树6、堆正文1、二叉树的结构、基本操作、常见类型1.1 二叉树的特性先来看看二叉树的...

2018-11-29 12:08:33 402

原创 数据结构梳理(4) - 队列

前言上次说完了栈,今天我们再来看看它的好兄弟----队列,大致的梳理内容和栈差不多,不过在实际应用当中,队列相比栈来说,有很多的变种,而且它们使用都非常的广泛,我们除了要会最基本的队列的实现,还要扩展下知识广度,知道队列的一系列变种以及使用等。目录一、队列的特性及种类二、基于数组实现队列三、基于链表实现队列四、jdk源码中的Queue实现五、优先级队列六、阻塞队列七、双端队列...

2018-11-17 21:30:24 587

原创 数据结构梳理(3) - 栈

前言上次梳理了数组和链表,这次我们再来看看栈,栈也是常用的数据结构之一,我们这次除了了解它的特性之外,主要是手动来实现它,平常我们可能都是直接使用的java api里的stack类,我们很少会去关注它的实现原理,如果这时候来了个任务,让自己实现一个轻量级的栈呢,对吧,所以自己动手实现才是最可靠的,也是非常有必要的,我主要是分为两种,一种是基于数组实现,一种是基于链表实现,好了,我们开始吧!目录...

2018-11-14 17:42:51 243

原创 使用Hexo搭建next主题效果的博客

一、安装Hexo在某个盘下新建一个目录,例如hqblog然后先安装node.js,去官网下载安装然后安装git然后执行命令npm install -g hexo-cli然后使用git来到创建的目录hqblog下,执行hexo init二,下载next主题然后在这里目录下接着执行git clone https://github.com/iissnan/hexo-theme-n...

2018-11-13 21:14:56 570

原创 数据结构之查找表

前言今天学习数据结构看到了一个词-静态查找表,还有与之对应的动态查找表,然后我发现。啊,这是个啥,好像知道又好像不知道,不就是查找吗,干嘛弄这些专业的说法,回头翻了一下数据结构的书,才发现......。唉,小小的抱怨一下,不过,我从这两个词联想到了一门基础但是要精通又不简单的学问,就是查找,然后还有前天被面试官问到的一个查找题,题目很简单,如何查找单向链表中倒数第K个数?当然你先遍历一...

2018-11-12 18:30:57 11579 3

原创 数据结构梳理(2) - 线性表的链式表示之链表

前言发一下牢骚,本来这个数据结构梳理的系列是在我找工作之前开始的,但是在中间找工作的过程中,一部分原因是面试太忙时间比较少,只能舍重就轻,当然更大的原因还是我自己的惰性,为了保持这个系列的完整性,以及自己日后的复习,于是决定重新开始,按照之前的思路,将这个系列梳理完,中间也会穿插一些关于这些数据结构在面试中的考题。好了,上一篇讲的最基础的线性表的顺序表示,也就是基于数组,那么本篇的主要内容就是...

2018-11-12 17:50:29 210

原创 8102秋季校招:我的校招经历+Android岗总结(面经+技巧)

8102秋季招聘:Android岗总结(面经+技巧)前言先交代下教育背景,武汉某双非大学(非985非211大学,就是普通一本),本科学历,可以说这个硬性条件在现在这个年头已经是很大的劣势了,据不完全统计,现在找工作的70%以上都是硕士,还有5%的博士,没错,我就是剩下那一部分头铁的本科生,也不知道这个数据是否真实,但是从我自身经历来看,每次面试等待时,我都会好奇,主动搭话问一问一起面试的同学...

2018-10-02 18:07:21 14828 26

原创 Android性能优化概览

前言最近自己对安卓有一些感慨,有时候也会质疑自己,在这里抒发一下,有兴趣的可以看看,赶时间的就直接看正文啦。对目前大部分Android开发人员来说,当然这里说的是各种琳琅满目的小公司的大部分Android开发人员们,(一说我就想起上半年春招的时候,我居然才知道有个东西叫面经,所以目前还没能去大公司拧螺丝or造核弹暂且是拧螺丝吧,也只是听别人说说,但是至少我目前是怀揣着一颗造核弹的心),大多...

2018-08-05 23:41:48 310

原创 synchronized之锁浅析

前言废话少说,主要是弄清楚概念上的东西,方便在写程序中实际运用。锁的分类对象锁:synchronized修饰具体的类的实例对象,或者修饰类的一个方法 方法锁:synchronized修饰类的一个方法 类锁:synchronized修饰一个类的静态方法,或者修饰诸如(Object.class)具体的代码对象锁修饰具体的类的实例对象public class Test...

2018-07-27 17:30:42 233

原创 基于云信IM实现的文字+图片消息聊天功能

前言记得在初学Android时,自己当时定下的目标的是实现一个QQ,虽然当时的想法比较高,但是自己当时技术不足,很多功能无从下手,最后便做了一些QQ的效果来当做学习,后来就搁置在那里了,然后在大二暑假在工作室做项目,项目里需要用到一个客服的功能,其实就是一个在线聊天,当时也是花了很多功夫,最后是借助三方平台融云的IM来实现的,不过当时时间很紧,于是没有将过程记录下来,正好最近接触到了云信,于是...

2018-07-24 20:46:51 5829 1

原创 Android(Java)代码生成技术--JavaPoet初体验之手动实现依赖注入

前言相信大家在平常的开发中,依赖注入这个词没少听说过吧,比如做安卓开发的,使用的Butterknife、Greendao等等第三方库,都是使用的一种叫做编译期代码即时生成的技术,然后我们可以利用编译生成的类来辅助我们的开发,减少我们的工作量,这个技术听上去感觉挺高大上的,编译期间代码生成,这该怎么做到啊,好像从来没有从哪听说编译还能生成代码的,下面让我们来看看这门神奇的技术!编译期代码生成...

2018-07-24 15:32:50 2475 9

原创 Android开发代码规范 - 警告消除(Android Lint工具简介)(持续更新)

前言这篇博客主要是记录在平常开发中遇到的各种警告,虽然这些警告不影响使用,但是大片的警告显得十分不友好,而且我有强迫症,实在是不能忍啊,特此收集记录自己遇到的,同时希望这篇博客能帮助和我一样有代码强迫症的coder,让我们的代码远离警告,更加规范!!问题描述问题解决我想这个问题,十个小伙伴有九个小伙伴都遇到过,我就不废话了,解决方案就是使用资源文件String来管理对应的S...

2018-07-19 16:39:32 912

原创 MySQL8.0.11版-详细安装教程

前言今天想把MySQL更新到最新版,于是…………. 一上午就没了 没了 . 我以为10分钟的事,结果,哎,于是决定记录下,不然这种感觉比改Bug还难受,我才不想有第二次呢!需要准备的东西注意,在开始下面的步骤前,希望你能和我的操作一模一样,否则出错了就不好解决了。 下载安装包,官网提供的安装包有两种,一种通过msi安装程序安装,一种是压缩包直接解压的形式。由于大部分人喜欢图形...

2018-07-19 14:19:18 5775 2

原创 手动实现最简单的Android热修复(最新最全详细小白教程)

手动实现最简单的Android热修复前言最近了解到了热修复相关的东西,于是很好奇原理,便一番搜索资料,同时为了加深对热修复的理解,便自己照着网上的例子去实现一个热修复,因为基础相对比较差,而且网上很多例子都是过时的,而且很多细节不注意到的话,就是一个坑,而且还五花八门的,于是我觉得将自己的这个实现热修复的例子记录下来事很有必要的,主要是参考并综合了网上很多热修复的例子,自己实现并完成整...

2018-07-14 15:32:20 4288 8

原创 Android开发-过时方法和类的替代(持续更新)

过时方法ViewCompat.getTranslationY(View view) ViewCompat.getTranslationX(View view)等替代方法直接使用 view.getTranslationY()即可

2018-07-13 12:47:31 1720

原创 Android开发 Bug大全(一)(不断更新)

错误信息android.content.res.Resources$NotFoundException: String resource ID #0xc出现原因误将int类型的值传入需要传String类型的地方 解决办法找到类似 setText()的方法,看是不是传入了int类型的值...

2018-07-12 21:03:11 735

原创 Java装箱和拆箱详解

Java装箱和拆箱详解题外话今天早上在学习公司代码,然后准备学习下MVP框架,于是找了个简单的MVP框架例子,结果在框架中,发现了一个类叫SparseArray的类,秉持着一种遇到问题就深究下去的精神,我就转去看SparseArray相关的知识,结果发现了一片新天地,顺带研究了一番Android里的几个集合类,主要是SparseArray和ArrayMap,然后我就想,Java里不...

2018-07-12 17:47:10 5363 2

原创 数据结构梳理(1) - 线性表的顺序表示之数组

前言最近花了接近一个月的时间,期间加上上课考试等,断断续续的,不过今天为止,总算是把我以前--望--闻--生--畏--的数据结构全部梳理了一遍,同时用一个工程将他们全部记录了下来,下面是这个工程的目录截图,可能会在后续陆续加上一些常用的操作,比如两个栈实现一个队列,两个队列实现一个栈等等,但是还是步步为营,慢慢来,先从基础开始。由于我目前数据结构水平不高,主要是将基础打牢,所以...

2018-07-09 16:00:04 510

原创 内部排序与外部排序简单比较

前言本篇文章主要介绍内部排序与外部排序的知识,如果你和我一样还不知道内部排序和外部排序为何物的话,不妨看看我的理解正文由于待排序的记录数量不同,使得排序过程中涉及的存储器不同,可将排序方法分为两大类:内部排序与外部排序。概念内部排序:待排序记录存放在计算机随机存储器中(说简单点,就是内存)进行的排序过程。外部排序:待排序记录的数量很大,以致于内存不能一次容纳全部记录,所以在排序过程中需要对外存进行...

2018-06-03 17:33:35 19485 5

原创 Linux shell编程之函数的使用

需要知道的规范函数应“先定义,后使用”。调用函数时,直接利用函数名,不用带圆括号,就像一般命令那样使用。shell脚本与函数间的参数传递可利用位置参数和变量直接传递,变量的值可以由shell脚本传递给被调用的函数,而函数中所使用的位置参数$1,$2等对应于函数调用语句中的实参,这一点与普通命令不同。例如,show /home/user 中,/home/user是函数show中$1的值学习例子#!/...

2018-05-17 13:45:06 490

原创 Linux shell编程记录

要实现的效果如下:Shell脚本文件名为sq,执行时接受2-10范围内的一个整数作为输入参数,在屏幕上用+号、@号和 &号画出以给定参数为边长的正方形。例如:输入命令$ sq 4并回车,则屏幕上会绘制如下的正方形,(注:其中第2、3行上的&符号之间有两个空格)@++@& && &@++@ shell代码如下:#/bin/bashread aif ...

2018-05-17 13:08:50 951

原创 七大排序算法之各算法的比较

前言如果对七大排序算法还不是很了解的,可以对着下面这些链接,再去学习或者熟悉下冒泡排序选择排序插入排序快速排序堆排序归并排序希尔排序这篇文章主要是对这七大排序算法做一些总结,什么情况下应该用哪个排序算法等。正文首先,再复习一下各个排序算法的时间复杂度,以及稳定性(图源自网络)先科普一下算法的稳定性这个概念,什么叫做算法的稳定性呢?举个具体的例子首先简单的数字排序,这里稳定性没有任何意义,那么情况下...

2018-05-01 19:01:04 836

原创 七大排序算法之希尔排序

前言这个排序算法,其实就是一个插入排序的改进,可以作为知识的扩展来学习,由于平时用的不多,所以先记录在这里,以后要用不至于没有头绪。原理希尔排序在数组中采用跳跃式分组的策略,通过某个增量将数组元素划分为若干组,然后分组进行插入排序,随后逐步缩小增量,继续按组进行插入排序操作,直至增量为1时间复杂度平均情况:介于n和n*n之间最坏情况:n*n最好情况:n代码public class ShellSor...

2018-05-01 17:19:06 1355

原创 七大排序算法之归并排序

前言虽然归并排序在七大排序算法中,不是那么的出众,但是毕竟人家是一个稳定的算法,所以,技多不压身,何乐为不为呢原理还是一个分治的思想,将一个数组分为两部分,然后对左边归并排序,对右边归并排序,再将两个有序子数组合并即可,那么怎么合并两个数组呢,简单一点的办法就是创建一个临时数组,然后不断遍历二个数组的元素,将较小者放入临时数组,知道其中一个数组元素遍历完毕,在将另一个数组中剩余的元素附加到临时数组...

2018-05-01 17:04:23 419

原创 七大排序算法之堆排序

前言堆排序也是一种非常重要的排序算法,但是在写堆排序算法之前,需要对堆的概念有一定了解,简单来说就是利用了大根堆和小根堆的特性,在大根堆中,堆顶的元素是整个堆元素中最大的,小根堆中,堆顶的元素是整个堆元素中最小的。原理其实原理简单点说,就是利用大根堆小根堆的性质,那么怎么根据大根堆小根堆的性质来实现排序的效果呢?第一步,建堆,如果为升序,建大根堆,为降序,建小根堆。怎么将一个有序数组构建成一个堆呢...

2018-05-01 16:25:21 273

原创 七大排序算法之快速排序

前言快排,快排,顾名思义,是一种效率非常高的排序算法,不管是在平常编程中,还是面试时,都是经常涉及到的,作为重点掌握原理基于分治的思想,首先在数组中选择一个标志位,然后分别从数组的两端扫描数组,设两个指示标志,一个指向起始位,例如low,一个指向末尾,例如high,首先从后半部分开始扫描,也就是开始移动high指示标志,如果发现有元素比标志位的值小,停止扫描,然后从前半部分开始扫描,也就是移动lo...

2018-05-01 15:55:21 364

原创 七大排序算法之插入排序

前言插入排序也是比较常用的原理对于给定的一个数组,初始时,假设第一个元素自成一个有序序列,其余元素为无序序列,接着从第二个元素开始,按照元素的大小,依次将当前处理的元素插入到之前的有序序列中,直到最后一个元素插入到有序序列中为止。时间复杂度平均情况:n*n最坏情况:n*n最好情况:n代码public class InsertSort { //插入排序 //对于给定的一个数组,初始时假设第一个...

2018-05-01 15:33:10 299

原创 七大排序算法之选择排序

前言和冒泡排序一样,这个也是简单而必须掌握的基础排序算法。原理遍历数组每个元素,若为升序,则寻找最小的数与第一个数交换,一趟排序结束后,最小的数位于数组第一个位置,然后在2-n个数中,寻找最小的元素放在第二个位置,往复下去,排序结束。时间复杂度固定:n*n代码public class SelectSort { //选择排序 //做N趟排序,每一趟选择最小的数与前面的交换 //时间复杂度...

2018-05-01 14:59:39 274

原创 七大排序算法之冒泡排序

前言感觉虽然学了这么久的编程,但是越发感觉自己编程的思维没有达到理想中的效果,于是决定整理一下常见的七大排序算法,虽然都很基础,我也是这么认为的,但是越是基础的东西,吃透了之后,还是能有所收获的,比如排序算法,至少在需要的场合,能够信手拈来,我觉得这是必须的。废话不多说,先从最简单的冒泡排序开始。原理不断遍历数组每个元素,比较相邻两个元素的大小,如果为升序,当前者元素大于后者时,则交换这两个元素,...

2018-05-01 14:40:18 372

原创 安卓开发个人小作品(3) - 多功能音乐播放器

这次介绍一个多功能音乐播放器,记得是大二那年寒假写的,实现的主要功能就是音乐播放,带进度条控制,扫描本地音乐,上一曲下一曲,播放类型(单曲循环,顺序播放,随机播放),APP主题换肤,背景图更换等,功能都比较基础,基本上如果你不会的话,跟着我的思路,应该都是能实现的,预计会在以后加入歌词的功能。在开始前,先放一张最后的效果图吧,我个人喜欢的风格,简约,美观。目录1.实现扫描本地音乐...

2018-04-30 17:58:09 20731 71

原创 安卓开发个人小作品(2)- QQ简仿

个人小作品系列,这次继续介绍自己曾经写的一些“小玩意”,这次就介绍下自己初学安卓时,写的一个简仿QQ吧。里面都是一些基础知识,但是作为初学者来说,还是可以学到很多东西的。由于这个涉及到的知识很散,就按照界面一个个说,主要就是一些安卓基础,要是你能耐心看下去的话,肯定都能做到。好啦,开始吧。目录1.欢迎界面(handler、Timer的使用等)2.登录界面(属性动画、editTe...

2018-04-23 20:34:07 3731 9

原创 安卓开发个人小作品(1) - 有声计算器

大家好,最近才开始写博客,准备先整理一下学习安卓以来,自己做的一些“小玩意”,在回顾知识的同时,也希望可以帮助到有需要的开发者们!!嘻嘻,开始吧!计算器的实现,并不是这个“小玩意”的重点,同时,我也相信很多初级开发者都可以开发出比我这个计算器功能更加强大,界面更加炫酷的计算器,所以这篇文章主要是介绍实现计算器的有声效果!记得刚实现的时候,觉得好玩,对着扣了好多666!!!哈哈哈哈!!!语音播放原理...

2018-04-15 17:57:27 2074

原创 博客开篇:一些感悟及为什么决定开始写博客

前言一直想写博客,因为时间的关系,以及思想上的认识,或者更多的是我自己的“惰性”。第一次写博客也没有思路,就按照标题来吧,谈谈一些自己的感悟,以及为什么要写博客。感悟 先说下我的情况,大三在读,在校期间学习的是安卓,目前正在焦灼的找安卓实习,面临着即将工作的压力,前路的未知性让我感到压抑。但是我之前的一个想法却越来越强烈,那就是写博客,直到今天,我也不知道算不算晚,至少我现在终于...

2018-04-12 16:10:12 1069

使用CoordinatorLayout协调者布局实现仿京东发现页面效果

使用CoordinatorLayout协调者布局实现仿京东发现页面效果,有兴趣的可以深入研究下,相关博客https://blog.csdn.net/hq942845204/article/details/88844272

2019-03-28

ScrollView+TabLayout+ViewPager+RecyclerView 嵌套实现布局

手动实现仿京东发现页面效果,使用布局嵌套完成,包括ScrollView+TabLayout+ViewPager+RecyclerView,最后有遗留问题需要处理。详情见博客https://blog.csdn.net/hq942845204/article/details/88844272

2019-03-28

常用数据结构java实现

采用java实现,实现了常用的数据结构,包括顺序表、链表、队列、栈(数组实现和链表实现)、二叉树(二叉排序树)、图(深度优先、广度优先)

2018-07-26

使用网易云信实现的文字图片聊天Demo

一个单聊demo,可以收发文字消息和图片消息,基于网易云信实现,博客地址为 https://blog.csdn.net/hq942845204/article/details/81191979

2018-07-24

Android代码生成技术JavaPoet的使用

一个简单的了解编译期代码生成原理的demo,涉及到了javaPoet技术、自定义注解等,可用来了解butterknife、greenDao的原理

2018-07-24

安卓热修复实例程序

一个最简单,最易懂的,手动实现的安卓热修复源程序,更多介绍请访问 https://blog.csdn.net/hq942845204/article/details/81044158

2018-07-14

综合音乐播放器

一款综合的音乐播放器,带进度条控制,随机播放等,更换列表背景,主题换肤功能。

2018-04-30

对QQ的简单模仿源码

这是一款QQ的简仿源码,适合初学者,很多细节小知识点,有兴趣的朋友可以下载下来学习。

2018-04-23

有声计算器

使用安卓TTS文字转语音,实现有声计算器,感兴趣的伙伴们可以下载学习下哦!!

2018-04-15

安卓综合音乐播放器带进度条

一个综合的音乐播放器,带进度条播放,可更改APP主题颜色,四大主题,可自动扫描本地音乐,可设置喜爱歌曲,

2017-12-02

安卓网络图片下载

一个简单的从网络上下载图片的小例子,供初学安卓网络开发使用,输入网址即可下载图片

2017-12-02

安卓实现二维码扫描界面重复扫描

安卓开发实现zxing二维码扫描,可在扫描界面手动控制重复扫描,根据扫描结果做出相应动作等

2017-05-15

自定义dialog

自定义dialog,

2016-12-06

自定义Toast

自定义Toast 自定义一个布局 加载到Toast,在用Toast显示。

2016-08-21

空空如也

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

TA关注的人

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