试着理解滑动窗口 什么是滑动窗口大多数人第一次接触滑动窗口(Sliding Window)算法应该是在学习 TCP 协议时。在 TCP 协议中,滑动窗口算法被用来进行流量控制,发送方和接收方均维护一个窗口,窗口大小根据流量变化而变化,从而使消息的发送方和接收方能够以一个合适的速度进行信息传输,从而达到流量控制的效果。而滑动窗口算法则是一个更加广泛的概念,其被广泛用于解决 连续性问题 ,如连续子数组,连续子串等。 能 2025-05-15 算法 > 一些思考
Java 注解(Annotation) 什么是注解Java 注解(Annotation)是一种 元数据(描述数据的数据),以 @注解名 的形式附加在类、方法、字段等代码元素上,用于提供额外信息。注解不会也不能影响代码的实际逻辑,仅起到辅助性的作用,其包含在 java.lang.annotation 包中。 注解的用处 代码标记:如 @Deprecated 标记过时方法。 框架配置:如 Spring 的 @Controller、MyBat 2025-05-13 Java > Java基础
线上 CPU 高使用率的处理思路 CPU 使用率 100% 会导致什么问题 服务响应变慢甚至不可用:因为 CPU 资源被耗尽,导致无法及时处理请求,从而造成服务响应变慢甚至不可用,影响用户体验。 系统资源竞争加剧:多线程/多进程争抢CPU,锁竞争加剧,进一步拖慢系统。同时由于请求挤压,可能会最终会导致请求丢失。 其他资源受影响:高CPU通常伴随高内存、磁盘IO、网络IO压力,可能引发更多资源瓶颈问题。 导致 CPU 高 2025-05-12 运维
Leetcode 148:排序链表 题目背景给你链表的头结点 head ,请将其按 升序 排列并返回 排序后的链表 。 实现代码12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152class Solution {private: // 寻找链表的中间结点 ListNode* 2025-05-09 算法 > 刷穿Leetcode
如何编写一个规范的版权声明 先说结论,正确的格式应该是:Copyright [时间] [作者名]. All rights reserved. 对于可视化的版权声明,应该具备如下三部分。 符号 ©,或单词“Copyright”版权,或缩写 “Copr.” 作品初次公开发表的年份。如果是之前发表材料的编辑或者衍生(编辑比如:文选,衍生比如:翻译或者编剧),有权利使用编辑或者衍生作品的最初发表年份。画报,绘画或者雕塑复制在贺卡, 2025-05-09 学的有点杂
ThreadLocal原理详解 什么是 ThreadLocalThreadLocal 是一个线程级别的变量,每个线程都有一个 ThreadLocal 的副本,竞态条件被彻底消除,在并发情况下是绝对安全的变量。当我们执行 ThreadLocal<T> value = new ThreadLocal<T>(); ,系统会自动在每一个线程上创建一个 T 的副本,副本之间彼此独立,互不影响,可以用 ThreadL 2025-05-08 Java > Java并发编程
函数式接口 什么是函数式接口函数式接口是Java 8引入的概念,指只包含一个抽象方法的接口。这些接口可以使用Lambda表达式来表示,使代码更加简洁。 函数式接口的特点: 只有一个抽象方法(Single Abstract Method,简称SAM) 可以有多个默认方法或静态方法 通常使用@FunctionalInterface注解标记(非必须,但推荐使用) Java内置的常用函数式接口Java 8 在 j 2025-04-22 Java > Java基础
分布式 ID 生成 分布式 ID 应当满足的要求 全局唯一:ID 的全局唯一性肯定是首先要满足的! 高性能:分布式 ID 的生成速度要快,对本地资源消耗要小。 高可用:生成分布式 ID 的服务要保证可用性无限接近于 100%。 方便易用:拿来即用,使用方便,快速接入! 除此之外,我们还可以对分布式 ID 提出一些更高的要求: 安全:ID 中不包含敏感信息。 有序递增:如果要把 ID 存放在数据库的话,ID 的有序 2025-04-22 分布式
执行一条 SQL 的流程 概述从图上可以看出 MySQL 其实分为了 Server 层和存储引擎层。Server 层负责建立连接、分析和执行 SQL;而存储引擎层负责数据的存储和提取。 一条 SQL 可以分为简单分为以下几个阶段:连接、查询缓存、解析 SQL 和执行 SQL。 连接 建立连接:客户端通过 IP、端口号、用户名、密码等信息,通过 TCP 协议连接到 MySQL Server。 管理连接:Linux 控制台中 2025-04-21 MySQL
乐观锁和悲观锁 乐观锁乐观锁认为共享资源每次被访问的时候不会出现问题,线程可以不停地执行,无需加锁也无需等待,只是在提交修改的时候去验证对应的资源是否被其它线程修改了。乐观锁可以通过版本号机制和 CAS 算法实现。 CAS V:要更新的变量值(Var) E:预期值(Expected) N:拟写入的新值(New) 当且仅当 V 的值等于 E 时,CAS 通过原子方式用新值 N 来更新 V 的值。如果不等,说明已经 2025-04-15 Java > Java并发编程