LeetCode精选代码集 242. 有效的字母异位词我一开始的代码123456789101112131415161718192021222324public static boolean isAnagram(String s, String t) { char[] c1 = s.toCharArray(); char[] c2 = t.toCharArray(); if(c1.length 2020-06-30 技术分享 #LeetCode
为什么我的异常日志没有打印出来?! 背景最近在使用线程池的过程中,发现线程池执行的任务报错后没有错误日志打出来。纳尼?!线程池竟然还有这个坑?都说源码面前无秘密,所以我翻看了一下Java源码,客官请往下看: 源码分析1. submit源码分析由于这个不打印异常日志的问题是因为使用submit方法引起的,所以我们先看一下submit方法的源码: 12345678910/*** @throws RejectedExecutionExce 2020-06-26 技术分享 #线程池
为什么我们需要了解一点经济学 4月2号发生了一件我们都知道的事,那就是瑞幸的股票崩盘了,跌幅一度接近 80%,有段子说:1.8 折喝瑞幸咖啡,1.8 折买瑞幸股票。但是现在估计你两个都买不到了。 不管是瑞幸的崩盘,还是美股的十天内连续四次熔断,还是石油价格下跌,还是去年猪肉价格的大涨,亦或是该不该买房、买哪的房,亦或是中美贸易大战。这些事情都直接或间接的与我们的生活产生关联,其实他们都可以归结为一个学科领域的问题,就是经济学的 2020-04-03 人生哲学
睡眠周期 不知怎么的,今天4点左右就醒了,然后就睡不着了,这不禁让我想起来之前在大学跟同学分享的一个个人小经验,于是我起来写下了这篇小短文。 这个经验就是:人其实不需要每天睡的时间都一样,在经过一段拥有充足睡眠的日子的时候,你的睡眠时间总会通过各种方式减少(比如你刷手机的时间更晚了,别问我怎么知道的)。这个其实我理解为人的睡眠时间其实也是有一个周期的,就像年份有闰年、平年之分一样。在你经过一段正常的、充足的 2020-04-01 人生哲学
如何快速一键部署应用到服务器:ansible介绍 0.引入相信大家都有这样的经历,就是用Jenkins部署应用时会非常慢,因为Jenkins是去git仓库拉取最新代码,然后打包分发到指定的服务器上,如果你打包后的jar包体积还比较大的话,上传jar包都会花费好长一段时间。所以这种传统的部署方式实在是有点不够极客。 今天我就给大家介绍一种我最近在使用的部署应用的方式,使用ansible一键部署应用到服务器上。用ansible做好相应配置后,基本上只 2020-03-15 技术分享
Codis在生产环境的搭建指南 随着公司的业务量越来越大,并且因为疫情影响,线上办公的需求越来越大。又由于我们公司最近承接了其他公司不能远程办公的人工坐席,所以之前的单实例Redis在将来的压力会变大。为了防止Redis出现单点故障,我们决定搭建Redis集群,以便减少单个Redis的压力。 在综合考察了各个Redis集群方案后,我们决定使用豌豆荚出品的Codis作为我们的集群方案。在此就不比较Codis和官方的Redis Cl 2020-02-18 技术分享
如何利用负面清单立flag 又是新年伊始,每个人在看着自己去年立下的flag还没完成的情况下又立下了新的flag,就像下图这样,陷入了一个永远完成不了的循环中。那么怎么摆脱这种无限循环呢,我来分享一下我的愚见。 当你在你的清单立下一件又一件事情时,你的时间并没有因此而多出来。如果你还是在原来的基础上来做你清单上的事,那么你是没有时间来做的。于是我们自然而然地想到要在原来生活的基础上做减法,也就是列一个负面清单,里面列出了我 2020-01-04 人生哲学
如何写好代码,写好代码 你第一眼看到这个标题可能会疑惑我的标题是不是写错了,那么我来解释一下,第一个“写好代码”的“好”是副词,而第二个“写好代码”的“好”是形容词。意思就是只有你把代码写好了,你的代码才称得上是好代码。 那么如何写好代码呢?上周我在我的开发小组内进行了一个有关于整洁代码主题的分享。在这个分享上,我强调了一个中心思想,什么样的代码才能称作好代码,就是能让别人看懂的代码。而这个并不是一件容易的事,前人在这个 2019-12-24 技术分享 #读后感
什么是函数式编程思想? 请注意这篇文章并不是教你怎么使用Java8里面的集合新特性–stream流,也不是教会你怎么使用lambda表达式,它纯粹是我个人从函数式编程思想的角度出发,来思考我们为什么需要函数式编程以及何时才需要函数式编程的一个思考过程。 先说说我在开发过程中碰到的一个问题,因为有问题才能驱动人去解决问题嘛!这个问题就是我在写不同的定时任务的时候,发现每次都要使用一段相同的for循环代码段,中间唯一不同的就 2019-11-29 技术分享
千万不要这样使用@Async注解 在实际的项目中,对于一些用时比较长的代码片段或者函数,我们可以采用异步的方式来执行,这样就不会影响整体的流程了。比如我在一个用户请求中需要上传一些文件,但是上传文件的耗时会相对来说比较长,这个时候如果上传文件的成功与否不影响主流程的话,就可以把上传文件的操作异步化,在spring boot中比较常见的方式就是把要异步执行的代码片段封装成一个函数,然后在函数头使用@Async注解,就可以实现代码的异 2019-11-13 技术分享