刷新
LeetCode 21 合并两个有序链表:一道 Easy 题,凭什么刷掉一半候选人?

博主头像 LeetCode 21合并两个有序链表,一道Easy面试题,却是检验链表基本功的试金石。本文详解哨兵迭代(O(1)原地合并)与递归两种方案,梳理10个高频踩坑点,附带面试官高频追问、口述模板,延伸Comparator泛化、小顶堆实现K路合并,打通21→88→23→148链表归并学习路线,适合备战秋招... ...

Java学习随笔:多个布尔字段为何容易藏住非法状态(2026-10-29)

博主头像 学习 Java 对象建模时,布尔字段看起来是一种很直接的表达方式:是否已支付,是否已取消,是否已发货,每个问题都能回答是或否。然而,当几个字段共同描述同一个业务过程时,单独看都很清楚的答案,组合起来却可能互相矛盾。今天想整理的,就是怎样发现这些组合问题,并让对象能够表达哪些状态真实存在。 先设想一个 ...

java 多线程开发系列之九:玩转线程池(线程池的简介和简单使用)

博主头像 线程池是什么?顾名思义,就是线程的一个池子,它是java程序执行时对需要调用的线程进行一个预存。是池化技术的代表,除此之外,常用的池化技术还有连接池,字符串常量池等。它们的存在一般是为了解决两个问题:1,降低由于创建或销毁(线程/各种资源连接)的开销。2,方便统一调配和管理池中的资源。 所谓创建/销 ...

Java学习随笔:拆分方法时先找变化的理由(2026-10-28)

博主头像 学习 Java 时,常会听到一个建议:方法不要写得太长。这个建议有助于提醒我们关注复杂度,但如果把它理解为超过若干行就必须拆开,也可能得到另一种难读的代码:每个方法都很短,阅读一次业务却需要来回跳转很多次。今天想整理的,是怎样从职责和变化出发决定方法边界,而不是只盯着代码行数。 可以想象一个计算订单 ...

100 亿条数据如何快速写入 MySQL?从 231 天到 3.5 小时,我把面试官问懵了

博主头像 百亿级数据写入MySQL实战方案,逐条插入耗时高达231天,通过分片并行+LOAD DATA可压到3.5小时内。拆解B+树解释单表2000万行由来,理清假批量坑、导入调参、幂等断点续传、影子表无感切换,附带可直接复用代码与面试口述模板,同时给出架构取舍思路:冷数据未必适合MySQL。 ...

JVM内存区域与栈帧详解

JVM 内存区域与栈帧详解 内容涵盖:运行时数据区、虚拟机栈栈帧、符号引用/直接引用、常量池、操作数栈实例。 目录 JVM 运行时数据区 Java 虚拟机栈 · 栈帧详解 符号引用 vs 直接引用 常量池:class 常量池 / 运行时常量池 / 字符串常量池 操作数栈实例 一、JVM 运行时数据区 ...

Java学习随笔:读陌生代码时先追一条数据的去向(2026-10-27)

博主头像 学习 Java 项目时,打开一个不熟悉的工程,经常会同时看到很多包、接口和实现类。每个名字似乎都值得研究,但如果一开始就逐个阅读,很容易记住一堆局部细节,却仍然说不清项目怎样完成一次业务。今天想整理一个更具体的阅读办法:先选择一条能够描述清楚的输入,追踪它经过哪些变化,最后去了哪里。 例如选择一个查 ...

最近公共祖先LCA,详细讲解,蒟蒻也能看懂

博主头像 \(upd\):根据 SgtTree dalao的新方法,增加树链剖分写法 本文共讲述了五种方法,个人认为讲的比较详细,请放心食用 定义 最近公共祖先,简称 lca (Lowest Common Ancestor)。两个节点的最近公共祖先,就是这两个点的公共祖先里面,离根节点最远的那一个。 例题 最 ...

bool-hybrid-array 高效实战效果展示:亿级用户×少量标签的画像分群(0.1% 稀疏:list 指针数组 800MB → BHA 400KB,2026-10-26 实测)

声明:本文是 bool-hybrid-array 使用者的真机实测笔记,不是第三方独立评测;所有数字本机可复现(脚本口径见文末),优点短板都如实标注,别把"种草"当"评测"。 做用户画像分群的朋友都懂一个尴尬:用户是亿级的,标签是几十个的,但"给一亿个人打一个 True/False 标记"这件事,用 ...

P4591 [TJOI2018] 碱基序列,详细题解

博主头像 一道“字符串hash + dp”的好题 一.题意简述 题面理解起来有点困难,翻译一下题面 给定 DNA 串 \(s\) 和 \(k\) 组字符串,从每组恰好选一个字符串,按组顺序拼接。要求拼接结果是 \(s\) 的子串,求所有选择方案在 \(s\) 中出现的总次数(同一方案能在多个位置出现会分别计数 ...

Java学习随笔:参数校验为什么要分清格式和业务状态(2026-10-26)

博主头像 写 Java 接口时,参数校验往往是最早补上的一段逻辑:判断必填项是否存在,检查字符串长度,再确认数字有没有超出范围。做完这些,很容易觉得请求已经被检查过,后续只需执行操作。但在订单、库存等会持续变化的场景里,输入格式正确,和操作此刻确实可以执行,是两件需要分别判断的事情。今天想整理的,就是这两类校 ...

123···50>