- 博客(7)
- 收藏
- 关注
原创 HashMap链表长度超过8时,为什么使用红黑树而不是alv树?
HashMap采用“链表转树”机制优化查询性能,将O(n)链表查询提升为O(logn)树查询。相比AVL树,红黑树因其近似平衡特性,在插入/删除操作时维护成本更低(最多2次旋转),且空间开销更小(仅需1位颜色标记)。由于哈希冲突导致的长链表概率极低(JDK1.8阈值8对应概率仅千万分之一),红黑树在综合性能和空间效率上更适配HashMap高频动态操作的特点,其略低的查询效率对整体影响微乎其微,而AVL树的严格平衡优势在HashMap场景中难以体现。
2025-10-09 10:14:24
537
原创 Redis基础学习
Redis提供了5种核心数据结构:String(字符串)用于存储单个值,支持计数器操作;Hash(哈希)适合存储对象型数据,支持字段级操作;List(列表)实现有序队列,支持两端操作;Set(集合)提供去重能力和集合运算;SortedSet(有序集合)通过分数实现自动排序,适用于排行榜等场景。每种结构都有其独特优势:Hash适合存储用户信息等对象,支持部分更新;List可用于消息队列和最新数据列表;Set能高效处理共同好友等关系计算;SortedSet则是实时排行榜的最佳选择。开发者应根据业务场景选择最合适
2025-09-29 18:37:49
937
原创 MySQL索引优化与存储引擎
MySQL索引优化与存储引擎 摘要:本文深入探讨了MySQL索引的数据结构选择、存储引擎实现和SQL优化策略。索引采用B+树结构而非二叉树,因其能有效降低树高;MyISAM采用非聚集索引,InnoDB则使用聚集索引存储数据和索引。联合索引遵循最左前缀原则,通过减少开销、覆盖索引和高效筛选提升性能。SQL优化建议包括全值匹配、避免索引列操作、合理使用范围查询和覆盖索引等,以提升查询效率。
2025-09-16 08:58:30
864
原创 深入剖析HashSet
将高16位与低16位异或,**混合原始哈希码的高低位**,减少哈希冲突(例:`"A".hashCode=65 (0x41)` → `0x41 ^ 0x00 = 0x41`)。新位置 = **原位置** 或 **原位置 + 旧容量**,只需判断哈希值新增bit是0还是1(无需重新计算`hash % n`)。当λ=0.5(理想哈希冲突率),链表长度k≥8的概率仅 **0.00000006**(亿分之六)。// 前驱节点(删除时快速定位)// 1. 计算新容量(原容量*2)和新阈值(原阈值*2)
2025-06-28 07:29:15
811
原创 Git版本工具使用指南(小白版)
本文为代码小白提供了一份详细的 Git 使用指南,涵盖了从安装配置到远程仓库协作的全过程。Git 是一个强大的分布式版本控制系统,它帮助开发者高效管理代码版本、支持团队协作和代码备份。通过掌握基本命令(如 add、commit、push、pull 等),你可以轻松上手 Git,实现代码的版本控制和团队协作。
2025-04-14 10:48:27
675
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅
1