起风了

“路海长 青夜旷 越过群山追斜阳”

Java 算法 – 约翰的生意(线段树)

Java 算法 – 约翰的生意(线段树)缩略图
题意 在一条数轴上,有n个城市,编号从0 ~ n – 1 , 约翰打算在这n个城市做点生意,他对Armani的一批货物感兴趣,每个城市对于这批货物都有一个价格prices[i]。对于城市x,约翰可从城市编号为[x - k, x + k]购买货物,然后卖到城市x,问约翰在每个城市最多能赚到多少钱? 样例 给出 prices = [1, 3, 2, 1, 5], k ...

Blade – 1.4版本重大更新

Blade – 1.4版本重大更新缩略图
  在1.4版本之前,Blade有一个很大的弊端,就是注入源和注入目标有耦合。其中注入目标必须有一个@Module的注解,这个导致同一个注入目标不能被复用。我举一个简单的例子:   这两个页面有一部分相同的内容需要加载,所以对于注入目标来说,数据提供者(数据源)都是同一个。但是在1.4版本之前,每个注入...

Android 自定义View – 实现圆角图片的几种方式

Android 自定义View – 实现圆角图片的几种方式缩略图
  圆角图片在日常开发是非常常见,所以掌握它也是必要。之前也掌握相关有效的方法,但是从来没有总结过,今天写一篇文章来专门总结已知的方法。本文会介绍三种实现圆角图片的方法,同时也会介绍他们直接的区别。 1. clipPath方法   第一种方法通过Canvas的clipPath来实现,我们先来看一下相关实现代码: publi...

Java 算法-最大回文子串(Manacher算法)

Java 算法-最大回文子串(Manacher算法)缩略图
  今天在lintCode做了一道面试题,非常的简单,利用常规的方法计算起来非常的简答,但是有意思的就是挑战项。我们先来看看题: 题意: 给出一个字符串(假设长度最长为1000),求出它的最长回文子串,你可以假定只有一个满足条件的最长回文串。 样例: 给出字符串 "abcdzdcab",它的最长回文子串为 "cdzdc"。 ...

Android 基础-Fragment的使用

Android 基础-Fragment的使用缩略图
  初学Android时,我们都知道Activity,也知道Activity是怎么使用的。Activity的含义就是活动,一个界面,简而言之,放在App应用上来说,一个Activity就相当于是App中的一个界面。  但是今天我们学的是Fragment,可能初学Android的,可能不知道Fragment是什么,但是不急,我们在这里会详细的讲解。 1.Fragment...

Java 算法-快速幂

Java 算法-快速幂缩略图
  说实话,自己是第一次接触到快速幂这种东西,觉得有必要记录下来。 题意: 计算a^n % b,其中a,b和n都是32位的整数。 样例: 例如 2^31 % 3 = 2例如 100^1000 % 1000 = 0 挑战: O(logn) 1.解题思路   在介绍这个题的解题思路之前,我先来简单的介绍一下,什么是快速幂? (1).快速幂   快速幂,顾名思义就...

记一次Android性能优化的问题 – TextView的append方法

记一次Android性能优化的问题 – TextView的append方法缩略图
  最近楼主在做毕设,其中有一个评论回复的功能。在做的过程中,发现了一个问题,就是TextView在加载表情的过程非常慢。如图: demo.gif   作为优(闲)秀(的)码(蛋)农(疼)的我们,肯定不允许这种事情存在。所以,让我们来看看到底哪里导致了这么明显的卡顿。  本文参考文章: 让你的EditText删除表情...

Android 源码分析 – Activity的结构分析

Android 源码分析 – Activity的结构分析缩略图
  在很早以前,楼主简单的学习过Activity的结构,但是当时介于各种原因,只是浅尝辄止,并没有进行深入的学习。同时,我发现自己今年在毕业之后有点颓废,不再有去年那股学习劲儿。经过多次的自省,发现自己是因为找不到学习的方向而颓废的。   经过深刻反思自我之后,为了改变现在的状况,也为了弥补弥补当初...

Jetpack 源码分析(一) – Lifecycle源码分析

Jetpack 源码分析(一) – Lifecycle源码分析缩略图
  从今天开始,楼主正式开始分析Jetpack各个组件的源码。在学习jetpack源码之前,我已经将官方的相关文档以及博客看了一遍,并且结合自己所理解的jetpack,花了差不多4个月时间完成了一个mvvm框架,有兴趣的同学可以去看看:mvvm - mvvm框架的入门使用。  jetpack组件是google爸爸在2018年的开发者大会上推出...

Java 基础-集合的视图和包装器

Java 基础-集合的视图和包装器缩略图
  在学习Java的过程中,我们知道,Java中的集合框架是非常重要,在实际的开发过程(笔者是做Android的)中也是非常的实用。在这里,将简单的介绍一下,Java中的视图和包装器。本文不会介绍Java集合的基本使用,只会介绍一下自己觉得比较重要,但是又很少见的东西。 1.视图是什么   搞过移动开发的朋友,看到视图...