如何解决动态规划问题

曾经的我以为动态规划很神秘,很难理解。后来随着刷的动态规划相关的题越来越多,对于动态规划也就驾轻就熟了。我一开始来认识动态规划是通过概念来理解的,这对于我来说总是显得晦涩。我不是一个善于死记理论的人,反而是通过多刷题,回头再去看动态规划的使用情况则是有一种恍然大悟感。这样的获得想必也不会轻易忘记。刷题并不能让人变得聪明,但确实能够锻炼一个人的思维。

阅读全文〉

三门问题

前几天有一个关注很久的公众号推送了一篇讲 “三门问题” 的文章。这不是我第一看到这个问题的分析,我一直觉得这个是个伪命题,后面两个门打开后面有大奖的概率都应该是1/2才对呀。直到我去看了一些分析,写了这篇文章。

阅读全文〉

聊聊 ConcurrentModificationException

今天有朋友突然在群里抛出一句,”java中使用foreach遍历时,为啥不让删除元素呢?设计ConcurrentModificationException的意义是什么目的呢?如果单线程操作,还需要吗?” 。今天我们就来聊一聊这件事。

阅读全文〉

如何构建一个正确的单例

单例模式是设计模式里面最常见的,也是在面试过程中面试官最容易考到的,通过单例模式还可以引申到其他的一些并发问题。今天我们来聊聊如何正确的构建一个单例。

阅读全文〉

线上死锁分析解决纪实

服务发生死锁,死锁检测时间较长,31s后死锁检测出来事务才得以回滚,期间不断有相同请求进来,造成死锁越来越复杂,并且服务端线程池中的所有线程都在等待锁,最后造成服务端线程池无空闲线程,拒绝服务。

注意:单条 SQL 也是一个事务,也会和其他事务发生死锁。

阅读全文〉

Aria2 GUI最佳实践

目前用的爽的下载工具,通过搭配 Chrome 和 自己写的一些脚本达到不输迅雷的用户体验。

本文在 MacOS 下可以通过所有步骤,其他平台需要自行修改相关步骤

阅读全文〉

Java类加载器的准备和初始化

好久没有更新博客了,昨天在浏览微信公众号的时候看到了一道面试题,给出一个包含 main 方法的类,一些输出语句,让读者判断这些语句的输出顺序,其实也就是考察读者的对于 Java 类的初始化的顺序,看到这道题目的时候,我也就按照自己的理解得出了一个顺序,可是和答案却大相径庭,原因就在于对于 Java 类加载器在加载类时候的两个阶段:准备 初始化 没有足够的理解。今天我们在本文中就来聊聊类加载的这两个阶段

阅读全文〉