自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Chavin-Chen的博客

肩挑凡事,拳握初心。

  • 博客(84)
  • 资源 (5)
  • 收藏
  • 关注

原创 银行家算法-解析与编码(Java实现)

银行家算法Banker’s Algorithm是一个避免Deadlock的算法,是由艾兹格·迪杰斯特拉在1965年为T.H.E系统设计。算法背景在银行中,客户申请贷款的数量是有限的,每个客户在第一次申请贷款时要声明完成该项目所需的最大资金量,在满足所有贷款要求时,客户应及时归还。银行家在客户申请的贷款数量不超过之前声明的最大值时,都应尽量满足更多客户的需要。可以看到关键字:资金不能无...

2020-02-03 00:35:30 415

原创 【题解】表达式求值的两种解法(Java版) - 二叉树|双栈结构

表达式求值求一个非负整数四则混合运算且含嵌套括号表达式的值。如:# 输入:1+2*(6/2)-4# 输出:3.0数据保证:保证表达式合法(含除数不为0)。保证运算数是非负整数。双栈版维护两个栈: 符号栈,数字栈,遍历输入串过程中计算数字直接入栈符号入栈a. 符号栈为空b. 当前符号优先于栈顶符号c. 栈顶为’(’符号出栈计算: 栈顶符号非’(’ 且 优先级更...

2019-07-16 14:01:26 500

原创 【Android】对JSONObject抛ConcurrentModificationException的一点思考

对JSONObject抛ConcurrentModificationException的一点思考问题背景NetUtil.get(url, arg, new NetUtil.Callback() { @WorkerThread @Override public void onSucceed(JSONObject repose) { } @WorkerTh...

2019-06-24 18:31:06 1981 1

原创 【Android】Macbook Pro 10.14(macOS Mojave)编译Android9.0(aosp master)过程记录

记一次Android源码编译过程实验环境MacOS Mojave 10.14; RAM 16GSSD硬盘 960G能访问google的网络环境第一步:准备环境可参考官网说明:https://source.android.com/setup/build/initializing准备磁盘磁盘镜像方式(官方推荐25G,建议60G+)# 创建一个 .dmg(也可能是 .dmg.s...

2019-05-12 15:25:00 1596

原创 【题解】LeetCode-三数之和(3sum)

15. 三数之和给定一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?找出所有满足条件且不重复的三元组。注意:答案中不可以包含重复的三元组。例如, 给定数组 nums = [-1, 0, 1, 2, -1, -4],满足要求的三元组集合为:[[-1, 0, 1],[-1, -1, 2]]思路转化等式:b+...

2019-05-04 20:57:32 223

原创 【题解】LeetCode-整数转罗马数字(integer-to-roman)、罗马数字转整数(roman-to-integer)

12. 整数转罗马数字罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。字符 数值I 1V 5X 10L 50C 100D 500M 1000例如, 罗马数字 2 写做 II ,...

2019-05-04 20:43:40 199

原创 【题解】LeetCode-最长公共前缀(longest-common-prefix)

14. 最长公共前缀编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 “”。示例 1:输入: [“flower”,“flow”,“flight”]输出: “fl”示例 2:输入: [“dog”,“racecar”,“car”]输出: “”解释: 输入不存在公共前缀。说明:所有输入只包含小写字母 a-z 。思路比较直观的做法:遍历一次列表,每...

2019-05-04 20:36:30 170

原创 【题解】LeetCode-盛最多水的容器(container-with-most-water)

11. 盛最多水的容器给定 n 个非负整数 a1,a2,…,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0)。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。说明:你不能倾斜容器,且 n 的值至少为 2。图中垂直线代表输入数组 [1,8,6,2,5,4,8,3,7]。在此情况下,容...

2019-05-04 20:27:57 138

原创 【题解】LeetCode-正则表达式匹配(regular-expression-matching)

10. 正则表达式匹配给定一个字符串 (s) 和一个字符模式 §。实现支持 ‘.’ 和 ‘*’ 的正则表达式匹配。‘.’ 匹配任意单个字符。‘*’ 匹配零个或多个前面的元素。匹配应该覆盖整个字符串 (s) ,而不是部分字符串。说明:s 可能为空,且只包含从 a-z 的小写字母。p 可能为空,且只包含从 a-z 的小写字母,以及字符 . 和 *。示例 1:输入:s = “aa”...

2019-04-20 18:09:23 183

原创 【题解】LeetCode-回文数(palindrome-number)

9. 回文数判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。示例 1:输入: 121输出: true示例 2:输入: -121输出: false解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。示例 3:输入: 10输出: false解释: 从右向左读, 为 01 。因此它不是一个回文数。进...

2019-04-20 15:52:22 347

原创 【题解】LeetCode-字符串转换整数 (atoi)(string-to-integer-atoi)

8. 字符串转换整数 (atoi)请你来实现一个 atoi 函数,使其能将字符串转换成整数。首先,该函数会根据需要丢弃无用的开头空格字符,直到寻找到第一个非空格的字符为止。当我们寻找到的第一个非空字符为正或者负号时,则将该符号与之后面尽可能多的连续数字组合起来,作为该整数的正负号;假如第一个非空字符是数字,则直接将其与之后连续的数字字符组合起来,形成整数。该字符串除了有效的整数部分之后也可...

2019-04-11 22:55:58 160

原创 【题解】LeetCode-最长回文子串(longest-palindromic-substring)、Z 字形变换(zigzag-conversion)、整数反转(reverse-integer)

最近换工作有点忙,刷题也不积极了~5. 最长回文子串给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。示例 1:输入: “babad”输出: “bab”注意: “aba” 也是一个有效答案。示例 2:输入: “cbbd”输出: “bb”思路根据要求有两个点:长度最长回文串所以不妨假设存在这一的一个子串,逆序枚举长度,一旦其是回文,...

2019-04-06 00:14:28 301

原创 【Android】关于Android Studio和adb的使用记录

关于Android Studio和adb的使用记录一些常用的Android Studio(IntelliJ Idea)快捷键常用分析 Analyze:页面元素分析 Layout Inspector用adb 查看 activity用adb操作包(安装-查看-启动-停止-卸载)用adb进行输入(adb shell input)工欲善其事,必先利其器。最近因为换了Mac,很多地方有些不太适应,刚好最...

2019-04-05 16:24:25 747

原创 【题解】LeetCode-寻找两个有序数组的中位数(median-of-two-sorted-arrays)

4. 寻找两个有序数组的中位数给定两个大小为 m 和 n 的有序数组 nums1 和 nums2。请你找出这两个有序数组的中位数,并且要求算法的时间复杂度为 O(log(m + n))。你可以假设 nums1 和 nums2 不会同时为空。示例 1:nums1 = [1, 3]nums2 = [2]则中位数是 2.0示例 2:nums1 = [1, 2]nums2 = [3, ...

2019-03-31 23:37:01 294

原创 【题解】LeetCode-无重复字符的最长子串(longest-substring-without-repeating-characters)

3.无重复字符的最长子串给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。示例 1:输入: “abcabcbb”输出: 3解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。示例 2:输入: “bbbbb”输出: 1解释: 因为无重复字符的最长子串是 “b”,所以其长度为 1。示例 3:输入: “pwwkew”输出: 3解释: 因为无重复字符的...

2019-03-26 00:14:09 309

原创 【题解】LeetCode-两数相加(add-two-numbers)

2.两数相加给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字 0 之外,这两个数都不会以 0 开头。示例:输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)输出:7 -&g

2019-03-17 22:53:11 219

原创 【题解】LeetCode-两数之和(two-sum)

已经很久没有写题解了,上次面对一道表达式求值都写了半天而且最后效果也不是很理想。看来没事这个技能还是要点一点的,不然很容易会失去它。换一个比较适合职场上的人刷题的平台,以后有时间就刷一刷~好久没用C++,发现用C++刷不动了,尴尬,Java将就一下吧,反正刷题这种事情差不大啦~第一题:两数之和给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 ...

2019-03-17 21:17:34 328

原创 【VCS】Git之无尽探索

本文是关于Git探索的一篇文章,阐述了Git的大部分命令和使用方式,并列举了几个典型的使用场景以供参考和体会。

2019-03-14 23:23:50 1029

原创 【Android】初探自动化构建-Gradle中的Groovy

Groovy&GradleGroovy是基于JVM的一种脚本语言。Gradle是新一代的自动化构建工具(似Ant+Ivy,Maven),其核心功能由Java实现。并包含由Groovy编写的自动化构建领域特定语言(DSL)。Gradle的构建脚本(build.gradle)就是一个可执行的Groovy脚本。Groovy的语法特性Groovy底层由Java实现,几乎100%地支持J...

2019-03-04 13:49:57 262

原创 【求职】有关面试和简历相关的总结与心得

第一次写面试相关的文章,是觉得有必要总结一下这块的东西了。先说说对面试认识吧。人生而具备社会属性,在原始社会集群而居,继而出现氏族,国家,公司,团队。因为大家都认识到,单打独斗不足以立足生存。无论是为抵御猛兽而集群,还是为守卫领土而集群,亦或是为共同生产获取经济利益而集群,总之组队是为了更好地生存。TEAM为了更好地发展,自然要想方设法去争取于团队有利之人。生产力,组织力,协调力等等。纳新...

2019-02-21 14:15:55 686

原创 【多线程】基于CAS分析对ABA问题解决方案的一点思考

一、CAS背景synchronized加锁消耗太大volatile只保证可见性,不保证原子性基础用CPU提供的特殊指令,可以:自动更新共享数据;能检测到是否有其他线程的干扰;CAS(Compare and Swap)不加锁而是尝试去完成替换(写)操作,如果失败就重试,直到成功;分析// AtomicIntegerpublic class AtomicInteger ex...

2019-01-26 16:30:50 303 2

原创 【多线程】九、Android异步任务

Handler机制相关用途说明MessageQueue消息队列容器单链表实现(1)enqueueMessage:添加消息必要时唤醒next(2)next:读取消息,无消息时阻塞Looper消息循环读取器(1)Looper.prepare():创建MessageQueue(2)Looper.loop():启动无限循环调MessageQueue.next()若返回...

2018-12-23 19:18:47 188

原创 【多线程】八、异步计算结果获取

竞争分量为解决大量线程竞争问题, 子线程基于分量计算(分量在单线程模型上保证原子性),计算完毕后合并分量取结果;// Adder: LongAdder, DoubleAdder// Accumulator: LongAccumulator, DoubleAccumulator// 初始化LongAdder adder = new LongAdder();LongAccumulator...

2018-12-23 19:17:08 308

原创 【多线程】七、阻塞队列

BlockingQueue非阻塞方法:boolean offer(e[,timeout, timeUnit]); // 添加,失败返回false;E poll([timeout, timeUnit]); // 取出,失败返回null阻塞线程方法:put(e); // 添加,若空间不足则阻塞直到添加成功E take(); // 取出,若为空则阻塞直到有数据int drainTo(co...

2018-12-23 19:16:51 238

原创 【多线程】六、锁与同步

锁与同步锁定的代码块在多线程访问的时候以串行的方式执行,可以保证可见性、有序性、原子性概念含义可见性每个线程有自己的内存缓存,其他线程缓存在本线程中不可见原子性对于非单一的指令,要么都执行,要么都不执行有序性编译优化对指令进行重排序,只保证重排序的结果和没排序的结果一致(happens-before规则)Lock和ConditionReentran...

2018-12-23 19:16:16 184

原创 【多线程】五、线程池

线程池为解决频繁线程创建、销毁带来的不必要损耗,推荐使用线程池。ThreadPoolExecutor( corePoolSize, // 核心线程数,核心线程一直存活(即使空闲,除非allowCoreThreadTimeout(true)) maximumPoolSize, // 最大线程数 keepAliveTime, // 非核心线程闲置时长,超时线程会被回收 timeUnit, ...

2018-12-23 19:15:33 241

原创 【多线程】四、线程异常抓捕

异常处理路径Created with Raphaël 2.2.0Try-Catch链线程处理器线程组处理器父线程组处理器全局处理器系统层(不处理ThreadDeath)UncaughtExceptionHandler handler;// 为线程设置处理器thread.setUncaughtExceptionHandler(handler);// 使用线程组创建线程ThreadGr...

2018-12-23 19:14:56 213

原创 【多线程】三、线程访问变量

进程与线程: 进程独享内存数据,线程共享内存数据。线程依附于进程;线程与调度: 多核CPU下,线程可以真正并行,CPU数量小于线程数时则需调度; 抢占式调度:OS会剥夺线程运行权,给其他线程执行机会(时间片轮转) 协作式调度:线程只有在 被阻塞和等待时 才会失去运行权;

2018-12-23 19:14:19 377

原创 【多线程】二、线程优先级&守护线程

对于执行大量并行任务, 使用线程池: 1. 可减少创建和销毁线程上的消耗和”切换过度”; 2. 同时避免大量创建线程耗尽内存;建议通过ThreadPoolExecutor而不是Executors创建线程池; 原因如下 1. FixedThreadPool,SingleThreadPool 可能导致积压大量请求(Integer.MAX_VALUE) 2....

2018-12-23 19:13:53 320

原创 【多线程】一、线程状态切换

Hanlder机制相关用途说明MessageQueue消息队列容器单链表实现(1)enqueueMessage:添加消息必要时唤醒next(2)next:读取消息,无消息时阻塞Looper消息循环读取器(1)Looper.prepare():创建MessageQueue(2)Looper.loop():启动无限循环调MessageQueue.next()若返回...

2018-12-23 19:12:19 640 2

原创 【Android】自定义View相关记录-三大过程、滑动冲突、弹性滑动

类ViewPager的Demo控件,涉及Measure过程与MeasureSpecLayout过程滑动与滑动冲突弹性滑动Scrollerpackage com.chavinchen.demo;import android.annotation.SuppressLint;import android.content.Context;import android.content....

2018-12-22 01:34:31 213

原创 【软件工程】耦合与内聚、SOLID原则,常用软件图(思维导图,类图、流程图、时序图、状态图)

耦合耦合度是从模块外部考察模块的独立性,用来衡量模块间的相互联系。主要考察:模块相关联的代码和数据量,模块间调用的方式耦合的类型;模块间耦合类型含义独立耦合无直接联系,仅共有上层模块数据耦合彼此交换数据(参数、返回值)控制耦合通过参数控制执行逻辑分支公共耦合全局变量,公共数据/缓存内容耦合模块存在多入口(功能不单一)和非正常访问...

2018-11-27 20:44:38 1179

原创 【Android】约束布局(ConstraintLayout)使用参考

目录尺寸约束自身约束参照约束位置约束相对位置位置偏向辅助线链约束(Chain)总结尺寸约束自身约束尺寸类型类型说明固定值如android:width="200dp"wrap_content按内容自适应MATCH_CONSTRAINT宽高0dp,任由约束拉伸宽高比在宽或高为MATCH_CONSTRAINT的情况下...

2018-11-22 23:14:01 501

原创 【Android】使用Binder池减少Service进程数

定义Binder池AIDL接口:IBinderPool统一管理Binder池:BinderPoolManager实现WorkService拓展各业务模块BinderIBinderPool.aidlinterface IBinderPool { IBinder query(in int code);}BinderPoolManager.java// BinderPool...

2018-11-21 00:15:28 252 1

原创 【工具】Mardown使用笔记

一、文本样式语法备注标题N个# + 空格 + 标题标题最多6级,高亮*号包裹加粗或倾斜*斜体,**粗体,***粗斜体引用可用>前缀表示引用其中N没有限制上下角标角标用sup,sub标签X2, logN超链接[链接名](链接地址 '链接title')去底部代码`包裹单行代码,```包裹代码块```独占一行,可带开发语...

2018-11-14 00:23:07 318

原创 【Android】探索org.json.JSONObject解析Long数据丢失精度问题

以下所指的JSONObject均为org.json.JSONObject;get系方法和opt系方法区别get系方法在key不存在时候会抛受检异常(JSONException)opt系方法在key不存在时候会返回默认值源码: 这里nameValuePairs类型为LinkedHashMap。getLong或optLong可能导致的长整型精度丢失通过源码可知, 不...

2018-06-13 11:06:09 1470

原创 【Android】单例模式的推荐写法

单例如果考虑性能问题, 一般会选择懒汉式延迟加载这里记录一下线程安全的单例写法写法一public class MySingleton { private static volatile MySingleton sInstance; // 防止指令乱序 private MySingleton() {} public static MySingleton...

2018-05-10 17:25:55 301

原创 【杂耍】记录一次红米Note的救砖经历

本文记录适用于下列情况:1. 由于刷机导致的系统崩溃无法开机2. 由于刷机到MIUI8以上再卡刷降级导致的奔溃3. 刷机后IMEI无效4. MIUI8以上降级MIUI75. 由于IMEI无效导致WIFI,蓝牙等无法正常通信

2018-03-25 20:50:04 4293 1

原创 【正则】正则表达式(0)

1.字面值匹配 默认区分大小写:phone -> $0=phone 原样匹配:\Q . ^ $ + ? | ( ) [ - ]{ } \E 转义:\. [.] [\b]退格符 匹配修饰符(?x)(pattern): g全局,i:忽略大小写,m:多行,s:单行2.字符集与简写(大写取反) \d: [0-9] \w: [_a-zA-Z0-9

2017-12-19 21:12:06 1336

原创 【数据结构】基础数据结构和算法

搜索DFS 深搜方向:叶子数量级1.排列级P(m,n)=m!/(m-n)! int vis[n];dfs(int k){ if(k==n){ //执行P(m,n)次 return; } for(int i=0; i < n; i++) if(vis[i]){ vis[i]=1; dfs(k+1);

2017-12-19 20:48:02 339

MI刷机工具

MI刷机工具

2017-02-27

jdk8_tomcat8_eclipse_JavaEE环境套件

搭载JavaEE集成开发环境详细说明

2016-05-03

php5.4之PDO连接SQLSERVER

PHP的PDO连接SQLSERVER: 含全套工具: php5.4_x86_nts安装包 微软的SQLSRV拓展 微软的odbc驱动msodbcsql.msi 微软的sql客户端sqlncli.msi 配置好的php.ini 具体安装说明(原创亲测) 说实话这个得来很不容易,整整一天+个上午,但是我传资源从不要分,要分的都tm是怂人!但是有密码,密码在我博客对应文章有说明!

2016-04-23

C语言基础(ANSI C)

进入大学快一年了,到现在也算是勉强会了一点东西,当初从一个文科班的孩子到工学院,压力想想都可怕;工科最重要的是操作,随便写了点总结,希望能让更多的像当初我一样的普通学生能对C有个能清晰的结构; PS: 这是给小白的羊皮卷,也希望得到高手的斧正; ----技术无国界 *_* fantastic

2015-07-27

java连接sql server 2012环境搭建

用java连接sqlserver , 亲测sqlserver2012,为学生党发福利

2015-06-23

空空如也

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

TA关注的人

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