- 博客(44)
- 收藏
- 关注
原创 CMake基础及操作笔记
CMake 是一个跨平台的构建工具,广泛用于C++项目管理,通过简洁的配置文件(CMakeLists.txt)生成适用于不同平台的构建脚本。其核心优势包括跨平台支持、简洁高效、生态丰富和灵活性。CMake解决了传统构建工具的痛点,如跨平台编译、简化项目管理和模块化扩展。典型CMake项目流程包括编写CMakeLists.txt、运行cmake生成构建系统以及运行构建工具生成可执行文件或库。CMake语法简单,支持变量引用和注释,常用指令包括cmake_minimum_required、project、set
2025-05-17 17:47:52
818
原创 事务隔离(MySQL)
事务隔离是数据库并发控制的核心机制在 MySQL 中,推荐使用默认的 Repeatable Read + MVCC 实现事务隔离尽量避免隐式长事务,主动控制事务生命周期根据实际业务权衡性能与隔离性的需求。
2025-05-05 14:43:11
646
原创 一条 SQL 更新语句是如何执行的?
模块类型作用redo log物理日志保证崩溃恢复,属于 InnoDBbinlog逻辑日志用于复制、备份、审计,属于 MySQL Server 层两阶段提交协调机制保证两个日志一致,维护事务原子性与一致性。
2025-05-05 11:27:12
929
原创 面向对象编程(OOP)核心概念进阶
特征矩阵维度描述实例化能力❌ 不可直接实例化成员组成允许抽象方法 + 具体方法实现构造器存在意义供子类初始化时调用继承限制单继承(Java基础特性)黄金设计模式// 算法骨架(不可更改)// 抽象方法(强制子类实现)// 钩子方法(可选覆盖)System.out.println("默认PDF格式生成");代码示例@OverrideSystem.out.println("从CRM系统获取销售数据");@Override。
2025-04-14 15:03:50
520
原创 数据库存储体系详解
MySQL 8.0新增的「RocksDB引擎」适合写密集场景,支持LSM-Tree存储结构,写入吞吐量可提升5-10倍。可在保障数据安全的前提下提升写入性能。:使用InnoDB时设置。64个Page/1MB。
2025-03-31 14:31:19
954
原创 ReentranLock手写
MiniLock是一个自定义的锁实现,模拟了 Java的公平锁机制。公平锁的核心思想是“先来后到”,即线程按照请求锁的顺序依次获取锁,避免线程饥饿。state: 表示锁的状态,0表示未被锁定,>0表示已被锁定。: 记录当前持有锁的线程(独占模式)。Node队列: 使用双向链表维护等待锁的线程队列,head是持有锁的线程节点,tail是队列尾部。: 用于线程的阻塞(park)和唤醒(unpark代码实现了Lock接口的lock()和unlock()方法,并通过tryAcquire和。
2025-03-21 21:10:09
997
原创 CompletableFuture深度指南
优势特性:无需轮询检查完成状态(传统 Future 需要 get() 阻塞)内置链式任务编排能力提供异常处理与结果转换的 API支持自定义线程池(避免使用通用 ForkJoinPool)
2025-03-21 12:44:11
258
原创 垃圾回收算法(Garbage Collection)深度解析
(缓存系统追求高吞吐、实时系统优先低延迟、嵌入式设备需高内存效率)新生代大小设置 → 在STW时间与GC频率间找平衡。黄金三角定律:三者无法同时最优,需根据场景权衡。参数建议:老年代存活对象总量的1~1.5倍。从GC Roots遍历标记。:经历多次GC的对象更长寿。线性扫描清理未标记区域。:绝大多数对象朝生夕灭。新生代(Young)
2025-03-20 21:24:25
1404
原创 栈、堆、方法区
Java 虚拟机栈(Java Virtual Machine Stack)是 JVM 用于管理方法调用的内存区域,采用栈式数据结构(先进后出,FILO)。每个方法调用创建一个栈帧(Stack Frame)。生命周期:随线程创建而创建,随线程销毁而回收。线程私有:每个线程拥有独立栈。fill:#333;color:#333;color:#333;fill:none;线程 1虚拟机栈 1线程 2虚拟机栈 2栈帧 1栈帧 2栈帧 3堆(Heap)是 JVM 最大内存区域,存储对象实例。线程共享。
2025-03-19 12:01:00
1376
原创 初识JVM
以沙箱方式运行Java字节码的抽象计算机,核心特征:fill:#333;color:#333;color:#333;fill:none;JVM核心能力跨平台运行内存自动管理即时编译优化安全沙箱机制。
2025-03-14 19:24:46
1063
原创 C++竞赛级输入输出优化实战
通过上述方式系统梳理,结合高频使用场景和效率优化技巧,在算法竞赛中可显著提升代码效率并减少调试时间。:不处理类型不匹配的情况(如输入字符给整型变量)。
2025-03-11 18:52:11
680
原创 OpenHarmony体系架构深度解析
fill:#333;color:#333;color:#333;fill:none;important;important;important;important;important;important;important;important;支撑服务接口内核层系统服务层框架层应用层。
2025-03-11 18:17:32
841
原创 计算系统概述核心知识图谱(考研专项版)
建议将此笔记与《计算机组成与设计:硬件/软件接口》教材配套使用,重点关注第1、4、5章的知识延伸部分。每次复习时可结合思维导图进行知识体系重构。磁芯 → DRAM(三管→单管) → SDRAM → DDR4 → HBM(3D堆叠)1971年Intel 4004。1958年德州仪器首块IC。1958年肖克利获诺奖。第三代 中小规模IC。
2025-03-07 12:48:25
761
原创 蓝桥杯P1259-奇怪的馈赠 (贪心题解)
需要将 100 万(1,000,000)正好分成若干个 7 的次方形式的数(如 7^0=1, 7^1=7, 7^2=49 等),且每种金额(即每个 7 的次方)的使用次数不能超过 5 份。也算 7 的若干次方,主包这里没注意成蠢货了。
2025-03-06 20:21:29
1936
原创 蓝桥杯P17153-班级活动 题解
每次操作可以将一个数字改为任意其他数字,问最少需要修改多少个数字才能使每个数字的出现次数均为偶数。:数字 3 出现 3 次,多余的 1 个可以改为 1,使 1 和 3 的出现次数都变为偶数(1:2次,2:2次,3:2次),只需修改 1 个数字。如果某个数字出现次数大于 2 的部分(多于 1 对的部分),可以将其“多余”的数字改成其他数字,记为。,说明多余的数字不够,还需要额外配对,剩余的落单数字需要两两配对,最终修改次数为。,说明多余的数字足够补齐所有落单的数字,最终修改次数为。个整数,表示序列中的数字。
2025-03-05 21:12:41
963
原创 数据结构与算法----素数
又称质数,是指除了 1 和本身之外,不能被其他自然数整除的正整数。即对于素数 n ,对任意 ( a )( 1 < a < n ),有na0。
2025-03-05 07:47:21
755
原创 初识SQL
SQL(Structured Query Language,结构化查询语言)是一种标准化的数据库操作语言,广泛用于关系数据库管理系统(RDBMS),如 MySQL、PostgreSQL 等。它支持数据的定义(DDL)、操作(DML)和控制(DCL)。
2025-03-01 17:06:06
710
原创 HTML+CSS基础知识
外部样式便于多人协作和维护,优先级:内联 > 内部 > 外部(相同选择器时)。后代选择器匹配所有后代,子选择器只匹配直接子元素。表示行高为字体大小的 1.5 倍,提升可读性。:包含文档的元数据,如标题、CSS 链接等。仅对定位元素有效,用于控制重叠顺序。:定义 HTML 文档的根元素。可设置编号样式(如 A、B),后代选择器(空格)、子选择器(:粗体(语义上表示重要性)。标签选择器:直接使用标签名。:定义元信息,如字符编码。:斜体(语义上表示强调)。:行内容器,用于局部样式。:无序列表(带项目符号)。
2025-02-28 19:32:12
1149
原创 最大公约数和最小公倍数
公约数:能同时整除 a 和 b 的正整数。最大公约数:所有公约数集合中的最大值。,因为 6 是 12 和 18 的最大公约数。公倍数:同时是 a 和 b 的倍数的正整数。最小公倍数:所有公倍数集合中的最小值。,因为 36 是 12 和 18 的最小公倍数。
2025-02-27 19:45:22
787
原创 欧几里得算法
欧几里得算法是一种高效、经典的算法,其核心思想是通过辗转相除法逐步减小问题规模。它不仅用于计算最大公约数,还可以扩展到求解线性同余方程和模反元素,在数论、密码学和计算机科学中有着广泛的应用。其时间复杂度为。
2025-02-27 19:21:24
1633
原创 Java基础语法
数据类型 变量名 = 数据;// 定义并初始化// 示例:定义一个整数变量age并赋值为18变量支持基本运算(如加减乘除),语法与C语言一致。
2025-02-26 20:11:47
986
原创 数据结构与算法----递归
最直接的就是:递归在一直反复调用自身函数进行解决问题:定义递归何时停止,避免无限调用。:描述如何将问题分解为更小的子问题,并通过调用自身得到结果。
2025-02-25 18:54:12
1017
原创 数据结构与算法----散列(hash)
将任意长度的数据(键值)通过映射为固定长度的值(散列值/哈希值)。:快速定位数据,减少存储和查找的时间复杂度(理想情况下为 O(1))。数据库索引哈希表(Hash Table)实现键值对存储数据完整性验证(如文件校验)密码存储(如加密哈希)
2025-02-24 21:12:10
765
原创 C++常用库函数---sort排序
sort函数包含于头文件中,是C++标准库中的函数模板,用于对指定范围内的元素进行排序。其底层实现结合了快速排序、堆排序和插入排序(内省排序),平均时间复杂度为O(n log n),最坏情况时间复杂度为O(n²),但实际场景中通过优化策略极少出现最坏情况。默认排序规则为从小到大(升序)。比较函数决定元素顺序规则:若返回true,则第一个参数应排在第二个参数之前。需满足严格弱序(例如,不能出现a < b和b < a同时为真)。
2025-02-23 23:30:25
317
原创 数据结构与算法----排序(全)
小规模数据:插入排序、冒泡排序。大规模数据:快速排序、归并排序、堆排序。特殊场景小范围整数:计数排序。多位数:基数排序。均匀分布数据:桶排序。
2025-02-23 20:29:19
831
原创 数据结构与算法----枚举与模拟
枚举模拟核心思想遍历候选解复现操作过程优化重点剪枝、数学优化数据结构选择、模块化设计适用场景解空间明确的问题(排列、组合等)流程明确的系统性问题典型例题素数判定、全排列电梯调度、游戏规则实现。
2025-02-22 22:07:01
670
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人