Skip to content

Archives

All the articles I've archived.

2025 1
October 1
  • 从 Gnome 到 COSMIC 桌面

    记录一次从 Gnome 桌面切换到 COSMIC 桌面的经历,包括切换原因、安装过程以及使用体验

2023 3
November 1
  • 不同语言主流的内存回收策略

    主要原因是避免内存泄漏,导致内存占用不断增加。如果不进行内存回收,程序在运行过程中使用的内存会越来越多,最终导致系统的内存资源耗尽。

June 1
  • MySQL 分组之后 TopN 问题的处理方式

    最近在工作中使用 MySQL 碰到了 TopN ,理论上来说这类问题不是 MySQL 的能力范围, 不过在数据量较小的场景中仍然可以使用数据库的能力来完成 TopN 问题.

May 1
  • Rust 圣经小记

    最近对 Rust 有点兴趣, 于是读了下 <<Rust 圣经>> 这本书, 这里记录了一些基础语法作为笔记.

2022 2
October 1
September 1
  • Github Action 调试的痛

    前几天正好在调试 [vite-plugin-federation](https://github.com/originjs/vite-plugin-federation) 的一个 Github Action 问题,调试起来非常痛苦,大概流程

2021 4
August 1
  • treeshake 原理解析

    treeshake 相信大家都知道,其本意是摇树(即摇掉树上的死叶子,用来代指打包时摇掉死代码)。这个概念说起来简单,可是 rollup 是怎么做到的呢,这也就是本文的主要目的了

March 1
February 1
  • 记录一次 Tomcat 假死的经历

    某天上班午休起来之后某个客户反馈给他们开发的 CRM 系统现在访问不了,于是我赶紧尝试访问了一下,确实访问不了,我一开始以为是宕机了,于是赶紧去后台看了下进程,发现进程还是,只是当时的 load average 接近 7,基本上都是被 Tomcat 所使

January 1
  • 快速失败机制和其漏洞

    该部分来源于一次在某论坛上的讨论,迭代器在某些特殊的情况下即使修改了集合,可能并不会发生快速失败的现象。

2020 2
September 1
  • Optional

    Optional 是 JDK8 中用来改善臭名昭著的 NPE(NullPointer)的重要利器,尤其是搭配 Lambda 表达式的情况下,可以极大的改善以前大量的判空操作,下面我会用使用 Optional 之前和使用 Optional 之后的代码做对比来展现

August 1
  • Lambda 表达式

    Lambda 式 Java8 中一个重要的功能,它可以很简洁地表示一个行为或传递代码,现在我们可以把 Lambda 表达式看作匿名功能,它基本上就是没有声明名称的方法,但和匿名类一样,它也可以作为参数传递给一个方法。JDK 本身也提供了大量的 Funct