自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

分享+记录

记录java之路上的点点滴滴。

原创 剑指offer编程题解法汇总-目录

牛客网地址:https://www.nowcoder.com/ta/coding-interviews?page=1下面未标记链接的,就代表还没有解出来的。剑指offer编程题解法汇总1-二维数组中的查找 剑指offer编程题解法汇总2-替换空格 指offer编程题解法汇总3-从尾到头打印链表 剑指offer编程题解法汇总4-重建二叉树 剑指offer编程题解法汇总5-两...

2019-08-13 12:19:13 118

原创 安卓屏幕适配踩坑笔记(手机+平板)

前言目前做APP的时候,尤其应用跑在平板上的时候,发现了一个比较难解决的安卓碎片化的问题:同样分辨率的平板,屏幕密度是不相同的,甚至于不同品牌的手机也是不相同的。下面随便举了一些例子:型号 类型 屏幕宽度 屏幕高度 屏幕密度 rockchip 平板 1920 1128 1.5 华为C5 平板 1920 1200 2 华为C3 平板 1280 800 1.275 小米10 手机

2020-07-24 11:57:25 134

原创 写代码时注意的要点

1.多逻辑判断的时候,尽量使用配置的方式,而不是if else判断,这样容易出问题。比如2个版本的if else判断,再加一个版本,如果属于if的范畴,而不是else的范畴,就很容易出问题。

2020-07-22 17:12:46 26

原创 RecyclerView踩坑笔记

1.RecyclerView中嵌套另外一个RecyclerView时,内部的RecyclerView滑动时状态是不会变化的。2.onCreateViewHolder一直被调用,没有被复用。3.4.

2020-06-30 20:24:04 53

原创 volley框架学习

需求场景:用户网络不好或者流量用完的时候,原生volley框架会抛一个com.android.volley.TimeoutError的异常错误,虽然这是这是正常的,但是有两个问题:1.我们使用bugly检测,bugly上捕获到了这种错误,会影响我们APP的错误率。2.只在bugly上体现,也无法衡量我们到底有多少用户出现这种问题。所以,我们想把这个错误添加回调接口上抛出来,由应用层来接收处理和上报。# 一.框架的学习针对volly框架改造,那么首先就要学习一下volley框架。首先看一下使用

2020-05-11 11:43:41 107

原创 adb经常用到的命令

adb pull /data/anr/traces.txt d:/mytraces.txt //导出anr日志1.修改为指定分辨率adb shell wm size 1136x24802.恢复为默认分辨率adb shell wm size reset

2019-12-30 10:56:55 111

原创 Android解决应用崩溃后重启的问题,以及与bugly的冲突

在某些手机或者平板上,android程序崩溃后,系统会根据堆栈信息强行把应用重新拉起。但是这种强行重启应用,会一些数据缺失的问题,造成二次崩溃,这样的体验是十分不好的。所以我的目标就是崩溃后不要重新拉起应用。如何解决崩溃后重新的问题,可以参见下面的文章,本文不做过多的描述,清空activityStack即可。Android解决应用崩溃后重启的问题核心代码如下:public...

2019-12-01 19:07:38 802

原创 2019+2020年上海车牌成交价(机器学习预测)

月份 投标人数 额度 中标率 最低成交价 成交均价 成交时间 1月 168614 12832 7.6% 89500 89565 11:29:58 2月 163571 8998 5.5% 89400 89485...

2019-11-23 11:34:48 20389

原创 Manifest merger failed with multiple errors, see logs(各种解决方式的集合看这里)

今天项目引入一个第三方library,library是自己写的。但是引入就sync不过,提示错误org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':app:processDecoderIpdBetaManifest'. at org.gradle.api.internal.tasks.execut...

2019-11-20 14:06:26 161

原创 Android最新版本号与API级别对应关系(持续最新更新)

名称 版本号 API等级 BuildVersion Android 10 10.0 29 BuildVersionCodes.Q Pie 9.0 28 BuildVersionCodes.P Oreo 8.1 27 BuildVersionCodes.OMr...

2019-11-05 10:51:05 158

原创 Non-primitive fields should not be "volatile" sonar检查问题

今天解决sonar问题,下面的这段代码竟然报出了Non-primitive fields should not be "volatile" 的错误,很诧异,这可是多线程下标准的单例模式啊。public class SLSHeadersManger { private static volatile SLSHeadersManger instance; private...

2019-10-17 10:41:03 1168 3

原创 scrum敏捷开发流程介绍和心得

15年的时候我所在的团队开始使用敏捷开发。现在新公司也在逐渐向敏捷开发倾斜。所以写篇文件记录下。首先,先介绍下什么是敏捷开发百度来的:是一种从1990年代开始逐渐引起广泛关注的新型软件开发方法,是一种能应对快速变化需求的软件开发能力。它们的具体名称、理念、过程、术语都不尽相同,相对于“非敏捷”,更强调程序员团队与业务专家之间的紧密协作、面对面的沟通(认为比书面的文档更有效)、频繁交付新的软...

2019-10-14 20:25:37 140

原创 敏捷开发的优劣势

如果想知道敏捷开发是什么,以及敏捷开发的流程,请参考我另一篇文章:scrum敏捷开发流程介绍和心得敏捷开发的优势:1.短期目标明确开发的最终意义就是为了完成目标,而如果一个目标过于长远,那么就容易造成短期的盲目乐观,认为工期还早,从而造成短期的任务完成不及时,从而最终导致接近项目交付时工作量暴增,甚至出现延期交付的情况。有短期的目标,开发目标明确,知道什么节点该做什么。每一期...

2019-10-14 10:36:21 472

原创 基于持续集成/发布的分支管理策略

经过了一段时间的探索和实践,我们最终确定基于持续集成/发布的分支策略如下图:解释一下,1.dev/0902代表9月20日要发布的开发分支;开发人员的提交全部提交到这个分支上。2.rel/0902代表9月20日要发布的发布分支;由manager在发布日之前的一到两天由dev合并到rel分支。进行最终包集成。后续非严重问题不予合并。3.hotfix发布之后,hotfix的commit进...

2019-09-29 10:03:33 294

原创 剑指offer编程题解法汇总35-数组中的逆序对

题目描述在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数P。并将P对1000000007取模的结果输出。 即输出P%1000000007输入描述:题目保证输入的数组中没有的相同的数字数据范围:对于%50的数据,size<=10^4对于%75的数据,size<=10^5对于%1...

2019-09-26 16:41:33 51

原创 剑指offer编程题解法汇总34-第一个只出现一次的字符

题目描述在一个字符串(0<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符,并返回它的位置, 如果没有则返回 -1(需要区分大小写).public class Solution { int[] ints = new int[123];//只用66到122的部分 List<String> list = new Array...

2019-09-26 16:40:42 47

原创 剑指offer编程题解法汇总33-丑数

题目描述把只包含质因子2、3和5的数称作丑数(Ugly Number)。例如6、8都是丑数,但14不是,因为它包含质因子7。 习惯上我们把1当做是第一个丑数。求按从小到大的顺序的第N个丑数。待完成...

2019-09-26 16:39:15 60

原创 剑指offer编程题解法汇总32-把数组排成最小的数

题目描述输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。这题我的解题思路就是从左到右,一位一位的找最小的数。比如3,32,321,2。就先找从左到右第一位是0的,没有就找1,在没有找2,2只有一个,则加入到字符串中。从左到右第一位3开头的有3哥,...

2019-09-26 16:38:34 49

原创 剑指offer编程题解法汇总31-整数中1出现的次数(从1到n整数中1出现的次数)

题目描述求出1~13的整数中1出现的次数,并算出100~1300的整数中1出现的次数?为此他特别数了一下1~13中包含1的数字有1、10、11、12、13因此共出现6次,但是对于后面问题他就没辙了。ACMer希望你们帮帮他,并把问题更加普遍化,可以很快的求出任意非负整数区间中1出现的次数(从1 到 n 中1出现的次数)。我是这样拆分的:首先是有规律的,比如当前数为n,则N的范围如...

2019-09-26 16:37:48 59

原创 flutter混合开发报错:Failed to apply plugin [class 'FlutterPlugin']

也忘了之前改过什么了,前几天有个朋友给我留言说flutterMix的工程github的链接打不开。我才想起来前些时间为了应付公司信息安全部门的要求,把我很多项目都给删掉了,如果想恢复只能重新创建上传。本地flutter项目重新搭起来,报这个错误。百度谷歌了下,没有找到答案,好吧,只能靠自己了。报错如下:Project evaluation failed including an er...

2019-09-26 16:02:33 619

原创 at android.widget.Toast$TN$1.handleMessage(java.lang.IllegalStateException)

bugly上发现了一个很奇怪的崩溃,显示toast时崩了。记录下,后续查出来问题,再补充下。09-17 15:54:03.681 13461 13461 E AndroidRuntime: java.lang.IllegalStateException: View android.widget.LinearLayout{bb07d1 V.E...... ......ID 0,0-305...

2019-09-17 17:10:36 771

原创 剑指offer编程题解法汇总30-连续子数组的最大和

题目描述HZ偶尔会拿些专业问题来忽悠那些非计算机专业的同学。今天测试组开完会后,他又发话了:在古老的一维模式识别中,常常需要计算连续子向量的最大和,当向量全为正数的时候,问题很好解决。但是,如果向量中包含负数,是否应该包含某个负数,并期望旁边的正数会弥补它呢?例如:{6,-3,-2,7,-15,1,2,2},连续子向量的最大和为8(从第0个开始,到第3个为止)。给一个数组,返回它的最大连续子序...

2019-09-17 08:55:34 74

原创 剑指offer编程题解法汇总29-最小的K个数

题目描述输入n个整数,找出其中最小的K个数。例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4,。阶梯思路:第一种思路自然是做一个排序,排序完成后取前K个就可以了。但是这应该不是本题的要求。我的思路是分成两个数组,一个数组是前K个数,一个数组是后面的数字。先对第一个数组由小到大排序,然后从第二个数组中依次取数,1.小于第一个数组中最后一个数...

2019-09-17 08:55:02 74

原创 剑指offer编程题解法汇总28-数组中出现次数超过一半的数字

题目描述数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在则输出0。这题目没想到数字竟然指的是0到9,好low public int MoreThanHalfNum_Solution(int[] array) { int...

2019-09-17 08:54:05 70

原创 剑指offer编程题解法汇总27-字符串的排列

题目描述输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。输入描述:输入一个字符串,长度不超过9(可能有字符重复),字符只包括大小写字母。解题思路:其实核心就是每次从剩余的N个数字中选出一个字符。存在一种情况就是剩余的字符中有重复的,比如剩余的字符为...

2019-09-16 21:02:14 43

转载 消灭Java代码的“坏味道”

1.让代码性能更高1.1.需要 Map 的主键和取值时,应该迭代 entrySet()当循环中只需要 Map 的主键时,迭代 keySet() 是正确的。但是,当需要主键和取值时,迭代 entrySet() 才是更高效的做法,比先迭代 keySet() 后再去 get 取值性能更佳。反例:正例:1.2.应该使用 Collection.isEmpty() 检测空使用 ...

2019-09-16 19:58:57 88

原创 安卓项目为什么要转Kotlin?

目前google对kotlin的推广力度越来越大,一/为什么要转Kotlin上次google开发者大会把kotlin列为第一类开发语言之后,19年的google开发大会,google已经把kotlin正式列为第一开发语言,优先级已经高于java了。那么kotlin有什么优势呢?1.可互操作:于Android SDK和Java程序语言兼容。2.与其它工具兼容:由IntelliJ设...

2019-09-16 17:46:29 326

原创 Google 2019上海开发者大会一日游(安卓)

有幸被抽中了谷歌开发者大会的门票,做个记录和分享。第一场(主会场):谷歌开发者大会开幕主旨演讲1.谷歌大中华总裁陈俊廷做开幕演讲。陈俊廷主要为后面的分享做了写铺垫。但是演讲中有一点还是让我挺感动的,他说谷歌是一家为替大家完成各种任务,提供各种帮助的公司。回想一下,确实好像真是。android,tensor flow,arcore这些,都是都是平台服务,而不是具体的某个产品。2.谷歌...

2019-09-12 17:55:25 380

原创 Error:Java 8 language support, as requested by 'android.enableD8.desugaring= true'

出现这个错误如果是引入tinker导致的,那么恭喜你,你找到位置了。github上的issues:https://github.com/BuglyDevTeam/Bugly-Android-Demo/issues/67解决方案:gradle.properties中添加android.enableD8.desugaring = trueandroid.useDexArchive ...

2019-09-05 15:24:42 3842 5

原创 Git操作常用概念和命令

1、相关概念 [1]git 远程仓库。是代码服务服务器中的一个地址。使用git remote –v可以查看远程库地址C:\MyProjects\gits\android>git remote -voriginssh://lxl@code.c.com:29418/Wireless/android(fetch)originssh://lxl@c...

2019-09-01 20:23:24 70 1

原创 Freeline0.8.3.1.1(自定义版本)配置流程

之前携程使用的是0.8.3.1的版本,有一些BUG以及一些使用起来不方便的地方。所以我在0.8.3.1的基础上,增加了某些功能,发布了0.8.3.1.1的版本。0.8.3.1.1主要解决了以下几个问题:1、对于那些修改了会引起全量编译的文件,如果在配置白名单当中则验证其是否修改采用MD5值,而不是之前单纯的时间判断。应用场景:本地build.gradle文件修改了一直都不准...

2019-09-01 20:12:49 73

原创 protobuf实现原理

protobuf的实现原理一、protobuf的定义模型结构首先,先看一下protobuf的数据定义结构,下面是一个例子。option java_package = "com.lxl.servlet.pbmodel";option java_outer_classname = "DemoRequestProto";message DemoRequest{optional i...

2019-09-01 20:05:59 1764

原创 剑指offer编程题解法汇总26-二叉搜索树与双向链表

题目:二叉搜索树与双向链表题目描述输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。解题思路:分解这种二叉树的题目,肯定是要运行递归的思想,递归去分块拆解。我们每次的拆解不应该影响后续为拆解节点的left和right,那么只能把节点从下向上去拆解。我们举一个例子,下面这样的节点我们就可以按照这样的拆解顺序来:先拆解...

2019-09-01 18:54:11 68

原创 剑指offer编程题解法汇总25-复杂链表的复制

题目:复杂链表的复制题目描述输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点),返回结果为复制后复杂链表的head。(注意,输出结果中请不要返回参数中的节点引用,否则判题程序会直接返回空)解题思路:这题一开始想很简单啊。后来开始实现的时候才发现难点所在,难点就是遍历复制的时候由于存在random节点,而random节点是随机位...

2019-09-01 17:27:09 47

原创 剑指offer编程题解法汇总24-二叉树中和为某一值的路径

二叉树中和为某一值的路径题目描述输入一颗二叉树的根节点和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。(注意: 在返回值的list中,数组长度大的数组靠前)解题思路:第一种思路,肯定是顺序遍历,找出所有的等于N的数值的叶子节点的数组,加到总的集合里面。最后进行一个排序就好了。这种思路可以解题,但...

2019-08-27 19:48:27 73

原创 自出题:数组中两者之和是否等于给定数

题目:输入一个数组ints,有若干数字,数字有可能会重复。输入一个数字N,求数组ints中是否存在两者之和等于N。例如:输入数组[1,2,3,4,5,6],输入给定数N=7,则1+6=7,返回true。如果给定数N=12,没有两者之和等于,则返回false。...

2019-08-26 10:24:38 49

原创 自出题:Crossing-dot Game 划点游戏

题目介绍:两个玩家交替,在横的,竖的,或者斜的一条线上的划去一点或者多点,谁划最后一点谁输。Players take turns to cross any number of dots that are on a horizontal, vertical, or diagonal line, Whoever crosses the last dot loses!例如:下面这题,我一次性...

2019-08-23 17:33:29 88

原创 剑指offer编程题解法汇总23-二叉搜索树的后序遍历序列

二叉搜索树的后序遍历序列题目描述输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同解题思路:最后一个数一定是根节点,从根节点向前找第一个比根节点小的数,分为两个数组。第一个数组里面如果有比根节点还大的数,那就返回false。如果没有,则分拆为两个数组,递归调用下去。 public st...

2019-08-21 17:01:02 56

原创 剑指offer编程题解法汇总22-从上往下打印二叉树

从上往下打印二叉树题目描述从上往下打印出二叉树的每个节点,同层节点从左至右打印解题思路:一层一层的往下遍历,每层中的所有节点,都加入到一个list当中,带入到下一次方法递归循环当中。如果list为空,则说明遍历完了。public static void main(String[] args) { Solution solution = new Sol...

2019-08-21 15:50:50 46

原创 剑指offer编程题解法汇总21-栈的压入,弹出序列(验证未过)

栈的压入、弹出序列:输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。(注意:这两个序列的长度是相等的)解题思路:就是判断是否有两个以及以上的逆序。 public...

2019-08-21 15:36:54 47

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