- 博客(38)
- 收藏
- 关注
原创 数据库存储体系详解
MySQL 8.0新增的「RocksDB引擎」适合写密集场景,支持LSM-Tree存储结构,写入吞吐量可提升5-10倍。可在保障数据安全的前提下提升写入性能。:使用InnoDB时设置。64个Page/1MB。
2025-03-31 14:31:19
893
原创 ReentranLock手写
MiniLock是一个自定义的锁实现,模拟了 Java的公平锁机制。公平锁的核心思想是“先来后到”,即线程按照请求锁的顺序依次获取锁,避免线程饥饿。state: 表示锁的状态,0表示未被锁定,>0表示已被锁定。: 记录当前持有锁的线程(独占模式)。Node队列: 使用双向链表维护等待锁的线程队列,head是持有锁的线程节点,tail是队列尾部。: 用于线程的阻塞(park)和唤醒(unpark代码实现了Lock接口的lock()和unlock()方法,并通过tryAcquire和。
2025-03-21 21:10:09
980
原创 CompletableFuture深度指南
优势特性:无需轮询检查完成状态(传统 Future 需要 get() 阻塞)内置链式任务编排能力提供异常处理与结果转换的 API支持自定义线程池(避免使用通用 ForkJoinPool)
2025-03-21 12:44:11
245
原创 垃圾回收算法(Garbage Collection)深度解析
(缓存系统追求高吞吐、实时系统优先低延迟、嵌入式设备需高内存效率)新生代大小设置 → 在STW时间与GC频率间找平衡。黄金三角定律:三者无法同时最优,需根据场景权衡。参数建议:老年代存活对象总量的1~1.5倍。从GC Roots遍历标记。:经历多次GC的对象更长寿。线性扫描清理未标记区域。:绝大多数对象朝生夕灭。新生代(Young)
2025-03-20 21:24:25
1358
原创 栈、堆、方法区
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
1360
原创 初识JVM
以沙箱方式运行Java字节码的抽象计算机,核心特征:fill:#333;color:#333;color:#333;fill:none;JVM核心能力跨平台运行内存自动管理即时编译优化安全沙箱机制。
2025-03-14 19:24:46
1042
原创 C++竞赛级输入输出优化实战
通过上述方式系统梳理,结合高频使用场景和效率优化技巧,在算法竞赛中可显著提升代码效率并减少调试时间。:不处理类型不匹配的情况(如输入字符给整型变量)。
2025-03-11 18:52:11
622
原创 OpenHarmony体系架构深度解析
fill:#333;color:#333;color:#333;fill:none;important;important;important;important;important;important;important;important;支撑服务接口内核层系统服务层框架层应用层。
2025-03-11 18:17:32
673
原创 计算系统概述核心知识图谱(考研专项版)
建议将此笔记与《计算机组成与设计:硬件/软件接口》教材配套使用,重点关注第1、4、5章的知识延伸部分。每次复习时可结合思维导图进行知识体系重构。磁芯 → DRAM(三管→单管) → SDRAM → DDR4 → HBM(3D堆叠)1971年Intel 4004。1958年德州仪器首块IC。1958年肖克利获诺奖。第三代 中小规模IC。
2025-03-07 12:48:25
740
原创 蓝桥杯P1259-奇怪的馈赠 (贪心题解)
需要将 100 万(1,000,000)正好分成若干个 7 的次方形式的数(如 7^0=1, 7^1=7, 7^2=49 等),且每种金额(即每个 7 的次方)的使用次数不能超过 5 份。也算 7 的若干次方,主包这里没注意成蠢货了。
2025-03-06 20:21:29
1875
原创 蓝桥杯P17153-班级活动 题解
每次操作可以将一个数字改为任意其他数字,问最少需要修改多少个数字才能使每个数字的出现次数均为偶数。:数字 3 出现 3 次,多余的 1 个可以改为 1,使 1 和 3 的出现次数都变为偶数(1:2次,2:2次,3:2次),只需修改 1 个数字。如果某个数字出现次数大于 2 的部分(多于 1 对的部分),可以将其“多余”的数字改成其他数字,记为。,说明多余的数字不够,还需要额外配对,剩余的落单数字需要两两配对,最终修改次数为。,说明多余的数字足够补齐所有落单的数字,最终修改次数为。个整数,表示序列中的数字。
2025-03-05 21:12:41
943
原创 数据结构与算法----素数
又称质数,是指除了 1 和本身之外,不能被其他自然数整除的正整数。即对于素数 n ,对任意 ( a )( 1 < a < n ),有na0。
2025-03-05 07:47:21
712
原创 初识SQL
SQL(Structured Query Language,结构化查询语言)是一种标准化的数据库操作语言,广泛用于关系数据库管理系统(RDBMS),如 MySQL、PostgreSQL 等。它支持数据的定义(DDL)、操作(DML)和控制(DCL)。
2025-03-01 17:06:06
699
原创 HTML+CSS基础知识
外部样式便于多人协作和维护,优先级:内联 > 内部 > 外部(相同选择器时)。后代选择器匹配所有后代,子选择器只匹配直接子元素。表示行高为字体大小的 1.5 倍,提升可读性。:包含文档的元数据,如标题、CSS 链接等。仅对定位元素有效,用于控制重叠顺序。:定义 HTML 文档的根元素。可设置编号样式(如 A、B),后代选择器(空格)、子选择器(:粗体(语义上表示重要性)。标签选择器:直接使用标签名。:定义元信息,如字符编码。:斜体(语义上表示强调)。:行内容器,用于局部样式。:无序列表(带项目符号)。
2025-02-28 19:32:12
1115
原创 最大公约数和最小公倍数
公约数:能同时整除 a 和 b 的正整数。最大公约数:所有公约数集合中的最大值。,因为 6 是 12 和 18 的最大公约数。公倍数:同时是 a 和 b 的倍数的正整数。最小公倍数:所有公倍数集合中的最小值。,因为 36 是 12 和 18 的最小公倍数。
2025-02-27 19:45:22
722
原创 欧几里得算法
欧几里得算法是一种高效、经典的算法,其核心思想是通过辗转相除法逐步减小问题规模。它不仅用于计算最大公约数,还可以扩展到求解线性同余方程和模反元素,在数论、密码学和计算机科学中有着广泛的应用。其时间复杂度为。
2025-02-27 19:21:24
1530
原创 Java基础语法
数据类型 变量名 = 数据;// 定义并初始化// 示例:定义一个整数变量age并赋值为18变量支持基本运算(如加减乘除),语法与C语言一致。
2025-02-26 20:11:47
978
原创 数据结构与算法----递归
最直接的就是:递归在一直反复调用自身函数进行解决问题:定义递归何时停止,避免无限调用。:描述如何将问题分解为更小的子问题,并通过调用自身得到结果。
2025-02-25 18:54:12
1002
原创 数据结构与算法----散列(hash)
将任意长度的数据(键值)通过映射为固定长度的值(散列值/哈希值)。:快速定位数据,减少存储和查找的时间复杂度(理想情况下为 O(1))。数据库索引哈希表(Hash Table)实现键值对存储数据完整性验证(如文件校验)密码存储(如加密哈希)
2025-02-24 21:12:10
727
原创 C++常用库函数---sort排序
sort函数包含于头文件中,是C++标准库中的函数模板,用于对指定范围内的元素进行排序。其底层实现结合了快速排序、堆排序和插入排序(内省排序),平均时间复杂度为O(n log n),最坏情况时间复杂度为O(n²),但实际场景中通过优化策略极少出现最坏情况。默认排序规则为从小到大(升序)。比较函数决定元素顺序规则:若返回true,则第一个参数应排在第二个参数之前。需满足严格弱序(例如,不能出现a < b和b < a同时为真)。
2025-02-23 23:30:25
271
原创 数据结构与算法----排序(全)
小规模数据:插入排序、冒泡排序。大规模数据:快速排序、归并排序、堆排序。特殊场景小范围整数:计数排序。多位数:基数排序。均匀分布数据:桶排序。
2025-02-23 20:29:19
814
原创 数据结构与算法----枚举与模拟
枚举模拟核心思想遍历候选解复现操作过程优化重点剪枝、数学优化数据结构选择、模块化设计适用场景解空间明确的问题(排列、组合等)流程明确的系统性问题典型例题素数判定、全排列电梯调度、游戏规则实现。
2025-02-22 22:07:01
652
原创 Vue.js 基础与实战指南:从入门到跑路
使用Vue CLI、Vite等工具创建项目,结合Webpack/Vite构建。安装Vue Devtools浏览器插件,可实时查看组件树、数据状态、事件触发。插件生态丰富(如Vue Router、Vuex、Pinia)。直接修改数组索引或对象属性不会触发视图更新,需使用。引入Vue.js,适用于简单页面或局部功能增强。(Vue 2)或响应式API(Vue 3)。缺点:难以管理复杂项目,缺少工程化支持。变量、表达式、方法调用、计算属性。监听数据变化,Vue 3 改用。文件),结构清晰(`,(DOM挂载完成)、
2025-02-20 11:01:40
490
原创 数据结构与算法----进制转换
进制转换是计算机科学中的基础概念,掌握它对于理解计算机底层原理非常重要。通过加权求和、除基取余和分组法,我们可以轻松地在不同进制之间进行转换。
2025-02-19 16:47:24
581
原创 数据结构与算法----贪心
贪心算法是一种高效的算法设计范式,适用于满足贪心选择性质和最优子结构的问题。尽管它不能解决所有问题,但在许多场景下(如最小生成树、最短路径、活动选择等)表现优异。通过严格的证明和优化,贪心算法可以成为解决复杂问题的有力工具。希望这份笔记能帮助你更好地理解和应用贪心算法!
2025-02-18 21:36:43
613
原创 数据结构与算法----前缀和
前缀和是一种通过预处理将区间求和操作优化为常数时间复杂度的算法技巧。其核心思想是构建一个前缀和数组,其中每个元素存储原数组从起始位置到当前位置的累加和。对于数组 ,其前缀和数组 定义为: (当 )通过前缀和数组,区间 的和可快速计算为: 频繁区间求和:如统计数组中任意子数组的和。最大子段和:通过维护最小前缀和优化计算。二维扩展:处理矩阵中的子矩阵求和(需二维前缀和)。哈希表结合:统计满足条件的子数组数量(如和为k的倍数)。
2025-02-18 17:34:10
1177
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人