2021-03-30 concurrency 一行一行源码分析清楚AbstractQueuedSynchronizer 在分析 Java 并发包 java.util.concurrent 源码的时候,少不了需要了解 AbstractQueuedSynchronizer(以下简写AQS)这个抽象类,因为它是 Java 并发包的基础工具类,是实现 ReentrantLock、CountDownLatch、Semaphore、FutureTask 等类的基础。 Google 一下 AbstractQueuedSynchronizer,我们可以找到很多关于 AQS 的介绍,但是很多都没有介绍清楚,因为大部分文章没有把其中的一些关键的细节说清楚。 本文将从 ReentrantLock 的公平锁源码出发,分析下 AbstractQueuedSynchronizer 这个类是怎么工作的,希望能给大家提供一些简单的帮助。 阅读全文…
2021-01-01 碎碎念 2021年书单【年汇总】 我的能力就这么多,我若全心工作,则必然忽略生活;我若用心生活,则必然一事无成;我若两者兼顾,又难免平庸 摘自鶸道场 趁我还能写得动代码看进书的年纪,努力一回,看看这平庸的资质能发挥几分。 阅读全文…
2020-11-02 代码质量 if-else代码优化的几种方案 前言代码中涉及到较为复杂的逻辑是,一般情况下会出现大量的if-else,虽然实现了整个功能,但是阅读起来比较耗时,并且维护的时候也十分的困难,同时只要有一个地方没有考虑清楚,修改起来就难免出现bug。最近在做公司某个节点的性能优化,就遇到了这个问题,然后在review的时候,同事和我讲了一些优化方案,以及默认的规范之后。自己重新修改之后,感觉很舒服,后续自己重新整理一下,所以就写了这篇博客。 阅读全文…
2020-10-02 java lombok介绍 Lombok使用 Lombok是一款好用顺手的工具,值得去好好去熟练使用和深究。Lombok是一种Java™实用工具,可用来帮助开发人员消除Java的冗长代码,尤其是对于简单的Java对象(POJO)。它通过注释实现这一目的。通过在开发环境中实现Lombok,开发人员可以节省构建诸如hashCode()和equals()这样的方法以及以往用来分类各种accessor和mutator的大量时间。 阅读全文…
2020-09-06 碎碎念 2020实习前的总结 前言2020年2月底,在自己确定要找实习的时候,开始和女朋友哭诉所害怕自己找不到实习,没有公司要我,我太菜了等等等。经过耗时半年的时间,终于确定下来的了实习地点和实习公司,感觉整个过程还挺好玩儿的,所以就记录下来吧。 阅读全文…
2020-08-20 LeetCode 死磕图 前言LeetCode死磕系列九: 图 说实话图目前遇到的题目类型不多, 再加上今年图论课程上的一些算法, 只能说算是覆盖了图相关的一丢丢的内容😄 最近LeetCode每日一题, 遇到了较多的图遍历(深度遍历, 广度遍历)问题, 感觉是有迹可循的, 所以做一下整理吧. 阅读全文…