Alee

In the world the most exhausting matter is that spending every day falsely

数据结构与算法之美学习笔记

基础篇之链表

基础篇之链表 你知道如何用链表来实现LRU缓存淘汰策略吗? 链表结构 链表和数组一样,是非常基础且非常常用的数据结构,这两者有什么区别? 底层存储结构 数组需要一块连续的内存空间来存储,对内存的要求比较高。如果我们申请一个100MB大小的数组,当内存中没有连续的、足够大的存储空间时,即便内存的剩余总可用空间大于100MB,仍然会申请失败。 ...

数据结构与算法之美学习笔记

基础篇之数组

基础篇之数组 在大部分编程语言中,数组都是从0开始编号的,你知道为什么数组要从0开始编号,而不是从1开始编号呢?从1开始不是更符合人类的思维习惯吗? 什么是数组 数组(Array)是一种线性表数据结构。它用一组连续的内存空间,来存储一组具有相同类型的数据。 几个关键词 线性表(Linear List)。 线性表就是数据排成像一条线一样的结构。每个线...

数据结构与算法之美学习笔记

入门篇

入门篇 什么是数据结构?什么是算法? 从广义上讲,数据结构就是指一组数据的存储结构。算法就是操作数据的一组方法。 从狭义上讲,是指某些著名的数据结构和算法,比如队列、栈、堆、二分查找、动态规划等。 数据结构和算法有什么关系? 数据结构和算法是相辅相成的。数据结构是为算法服务的,算法要作用在特定的数据结构之上。 算法学习重点是什么? 学习数据结构与算法,首先要掌握一个数据结构与算...

一个关于CoordinatorLayout嵌套滚动的bug

CoordinatorLayout + AppBarLayout + RecyclerView+Header

采用CoordinatorLayout + AppBarLayout + RecyclerView + Header引出的一个bug Bug展示 Bug简述 如上图所展示的效果,首页第一次在RecyclerView区域外是响应手动滑动事件的,但是一旦在底部RecyclerView区域有滚动后,再在顶部滑动就死活滑不动的bug,只能在RecyclerView区域往上滑。首页这...

解决Android Studio依赖库版本不一致的问题

强制指定第三方依赖库内部所依赖的库的版本号

具体问题 在项目开发和迭代过程中,我们不得不依赖越来越多的第三方库,有些是为了不重复造轮子,有些是要用别人的功能,比如依赖一些直播平台的库。依赖的库越多,就越容易造成依赖版本冲突的问题。在最近项目上线,空闲下来的时间,准备来解决之前一直没有顾得上解决的一个依赖问题,虽然能编译通过,总感觉有一条红色警告线看着不爽。 就是它… 根据提示,大概意思是说所有com.android.supp...

RxJava操作符

RxJava常用操作符大全

本篇都是基于RxJava2.0的操作符说明,由于操作符太多,本篇只列举常用的操作符说明 创建操作符 create 通过实现ObservableOnSubscribe接口的subscribe来创建,该方法有一个事件发射器ObservableEmitter,通过它来向下游发射事件。 onNext:发射事件 onComplete:表示事件全...

从代码被盗到aar混淆打包

日防夜防,家贼难防

背景 我们公司从17年10月份开始规划的考研一对多平台项目锐跨考,在经过不到2个月的时间,从无到有开发完成,就在年后大家上班没多久,意外发现了一款名为橙啦的App简直就是我们锐跨考的复制版,除了替换了logo外,别的界面简直一模一样,最关键的是在我们平台注册的用户可以直接在橙啦app上登录。天呐,我还是第一次遇到这样的事情。无容置疑,这肯定是公司出现了内鬼,一锅端。 随便放上几张对比图:...

MarkDown语法三

MarkDown目录生成

此篇博文乃MarkDown的结尾篇,单独讲述MarkDown目录的生成,因为篇幅较长,所以单独作为一篇博文发表,如果你对MarkDown的语法还不是很了解,请阅读MarkDown语法一和MarkDown语法二 在编写一些技术开发文档的时候,通常篇幅较长,为了快速定位和浏览,我们通常会生成一个篇内目录索引,比如 [TOC] 语法 [TOC] [MENU] 以上两种可能在部分...

MarkDown语法二

MarkDown高级进化

在阅读此篇博文时,你应该已经掌握了MarkDown的基础语法和基本使用,如果还没有掌握,请先阅读我之前写的博文MarkDown语法一,本篇博文将教授大家MarkDown的高级使用,比如用MarkDown制作流程图,图片大小的调整,图片链接等 声明 MarkDown的高级使用,有些功能属于拓展语法,可能存在某些平台的编译器无法识别的情况 MarkDown图片大小 使用{:wid...

MarkDown语法一

MarkDown快速入门

Markdown 是一种轻量级标记语言,创始人为約翰·格魯伯(John Gruber)。 它允许人们“使用易读易写的纯文本格式编写文档,然后转换成有效的XHTML(或者HTML)文档” 标题 MarkDown支持6种标题,在行首插入1到6个# ,对应1到6级标题 # 一级标题 ## 二极标题 ### 三级标题 #### 四级标题 ##### 五级标题 ###### 六级标题 ...