自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

小盘海的技术专栏

记录学习与工作中的踩坑与总结,分享可落地的实战经验 从传统后端到 AI 时代,持续更新技术干货与思考

  • 博客(15)
  • 资源 (4)
  • 收藏
  • 关注

原创 【ElasticSearch】BM25 深度解析:从概率模型到工程实践

BM25是工业界广泛应用的经典信息检索算法,作为ElasticSearch的默认排序函数,它通过紧凑的公式同时处理词频、逆文档频率和文档长度归一化三个关键因素。其核心公式包含IDF分量和TF分量,其中k1参数控制词频饱和速度,b参数调节文档长度影响。经过TREC评测验证,默认参数k1=1.2和b=0.75在多数场景表现稳定。BM25具有三个显著的结构特征:分子分母差k1、凸组合长度归一化和平滑IDF计算。在RAG架构中,BM25与向量检索形成互补,混合搜索能显著提升召回率。实际应用中需根据文本长度和场景特点

2026-05-13 16:19:31 498

原创 【Java】深入解析synchronized与volatile:特性、原理及核心概念

本文深入解析Java并发编程中synchronized和volatile两种同步机制的核心差异。从可见性、指令重排序等基础概念出发,详细对比了二者在原子性、可见性、有序性方面的不同实现:volatile通过内存屏障实现轻量级同步,适用于单变量场景;synchronized基于对象监视器提供重量级锁,适合复合操作。文章结合DCL单例、计数器等典型案例,给出了实践建议:简单场景优先volatile,复杂同步选用synchronized或原子类,在安全与性能间取得平衡。通过图解和原理剖析,帮助开发者精准选型。

2026-01-23 10:42:44 680

原创 【Java】深入Java并发容器:原理、实现与场景选型

本文深入解析Java并发容器体系,从设计原理、实现机制到应用场景进行系统阐述。重点剖析了ConcurrentHashMap的分段锁与CAS优化、ConcurrentSkipListMap的跳表结构、BlockingQueue的阻塞机制以及CopyOnWrite容器的读写分离特性,揭示其通过锁粒度优化、无锁技术和读写分离实现高性能并发的核心原理。文章对比了各类容器的适用场景,指导开发者根据读写特性(如读多写少、有序需求等)精准选型,避免性能瓶颈。最后总结了CAS、volatile和细粒度锁三大核心技术如何协同

2026-01-23 10:42:22 715

原创 【Java】吃透ThreadPoolExecutor:核心参数、拒绝策略与生产级自定义线程池实战

内置拒绝策略仅能满足基础场景,生产环境中,为避免任务丢失、便于问题排查,通常需要自定义拒绝策略,核心需求包括日志记录、异常告警、任务重试或持久化。需求:任务被拒绝时,实现日志记录、告警通知、重试提交的完整逻辑,确保任务不轻易丢失,同时便于问题排查。/*** 自定义拒绝策略:日志记录+告警通知+重试提交*/// 重试次数限制@Override// 1. 记录拒绝日志,包含线程池状态与任务信息logger.error("任务被拒绝!

2026-01-22 11:09:17 941

原创 【Java】 锁机制全解析!从 CAS 到 AQS,从偏向锁到 Lock

本文深入解析Java并发编程中的锁机制,从底层思想到具体实现。首先对比乐观锁(基于CAS)和悲观锁(synchronized/Lock)的适用场景及特点,详细剖析CAS原理及其ABA问题解决方案。重点讲解synchronized的锁升级机制(偏向锁→轻量级锁→重量级锁)及其底层对象头结构,分析JUC包中Lock接口与AQS框架的设计原理,特别是ReentrantLock的公平/非公平实现。最后给出锁选择建议:低并发用synchronized,高并发用ReentrantLock,强调后者必须手动释放锁。全文系

2026-01-22 11:08:20 993

原创 【JAVA】JVM深度剖析:内存模型(JMM)与核心区域详解

本文深入解析JVM内存模型(JMM)的运行时数据区架构,重点剖析堆、栈和方法区/元空间的结构与内存分配机制。线程私有区包括程序计数器、Java虚拟机栈和本地方法栈,具有线程隔离特性;线程共享区包含堆和方法区,是GC主要战场。堆采用分代设计(新生代Eden/Survivor、老年代),通过TLAB、逃逸分析等优化对象分配;方法区在JDK8+由元空间实现,使用本地内存避免OOM。文章结合Mermaid图表详细展示了各区域内存分配流程及与GC的联动关系,为性能调优和内存问题排查提供理论基础。

2026-01-21 10:08:58 1191

原创 【Mysql】深挖索引底层逻辑:从B+树原理到全场景结构解析

本文深入剖析数据库索引优化核心,重点解析B+树索引的设计优势与底层原理。通过对比B树与B+树结构,揭示B+树在磁盘IO、范围查询和数据一致性方面的性能优势。详细分析索引失效的典型场景及底层原因,包括模糊查询、函数操作、类型转换等。提出索引设计的黄金原则,如最左前缀匹配、避免冗余索引等。此外,还介绍哈希索引、全文索引等其他索引结构的适用场景。掌握这些核心知识,可有效提升SQL性能,应对多样化业务需求。

2026-01-21 10:08:36 1024

原创 【MySql】深入解析 MyISAM 非聚簇索引底层结构

摘要:MyISAM引擎采用非聚簇索引设计,数据(.MYD)与索引(.MYI)文件完全分离。其索引树的叶子节点仅存储数据行物理地址而非数据本身,查询需"索引→地址→数据"三步跳转。这种结构使MyISAM具有读性能高(无事务开销)、表级锁(保证索引数据一致性)、易产生数据碎片等特点,但也导致其缺乏崩溃恢复能力,仅适合读多写少场景。文件分离与地址存储机制是理解MyISAM与InnoDB差异的关键底层逻辑。

2026-01-20 13:48:30 864

原创 【Mysql】 锁机制全解(行锁 / 间隙锁 / Next-Key)与死锁绝杀指南

本文深入解析MySQL InnoDB锁机制,重点剖析行锁、间隙锁和Next-Key锁的区别与实现原理。InnoDB通过Next-Key锁(记录锁+间隙锁组合)在可重复读隔离级别下解决幻读问题,其锁定范围取决于查询条件和索引类型。文章详细分析了死锁产生的必要条件与典型场景,提供了查看死锁日志的方法,并提出五大解决方案:统一锁获取顺序、缩小锁范围、控制事务大小、设置锁等待超时以及合理使用共享锁。最后强调通过索引优化、事务设计和代码规范来预防锁冲突,而非被动处理故障,为工程实践提供了系统性的锁问题解决思路。

2026-01-20 13:24:35 923

原创 【MySql】深入理解 InnoDB 缓冲池(Buffer Pool)的核心机制

本文深入解析InnoDB缓冲池的核心机制,重点剖析数据/索引页缓存逻辑、冷热数据分离的LRU算法实现以及脏页刷新策略三大模块。缓冲池作为InnoDB性能的"生命线",通过内存缓存减少磁盘IO,其命中率直接影响MySQL性能。文章详细介绍了优化后的冷热分离LRU算法如何避免全表扫描污染热页,并分析了innodb_flush_log_at_trx_commit和innodb_flush_method等关键配置对性能和数据安全的影响。最后通过实战案例展示了缓冲池相关性能问题的排查优化方法,为高

2026-01-19 10:33:54 774

原创 【MySql】深入理解 InnoDB 核心文件结构(.ibd、.ib_logfile、undo 日志、ibdata1)

本文深入解析了InnoDB的核心文件结构及其关联逻辑。系统表空间ibdata1存储数据字典、undo日志等公共数据,独立表空间.ibd文件存储单表数据与索引。重做日志ib_logfile保证事务持久性,undo日志支持事务回滚和MVCC实现。文章通过数据写入和崩溃恢复两大流程,详细阐述了各组件间的协作机制:数据修改先更新缓冲池,再写redo日志确保持久化,最后异步刷盘;崩溃时通过redo恢复数据,undo处理未提交事务。同时针对ibdata1膨胀、.ibd碎片等常见问题给出了优化建议,帮助读者全面理解Inn

2026-01-19 10:33:24 1062

原创 【MySql】存储引擎选型指南

MySQL存储引擎选型需要根据业务特点选择最合适的方案。InnoDB适用于事务型核心业务,支持行锁和ACID特性;MyISAM适合读多写少的静态数据,查询性能优异但不支持事务;Memory引擎用于临时缓存数据,读写极快但重启丢失;Archive引擎专为海量日志设计,压缩存储写入快但查询慢。选型需考虑事务支持、并发性能、持久化需求等因素,避免将MyISAM用于高并发写或Memory存储核心数据等常见错误。随着MySQL版本演进,InnoDB在大多数场景下已成为默认选择,特殊场景才考虑其他引擎。

2026-01-18 00:00:55 693

原创 【MySql】深入InnoDB事务核心:通过Redo/Undo日志、锁与MVCC解析ACID的底层实现

本文深入解析了InnoDB实现事务ACID特性的底层机制。首先阐述了ACID四大特性的定义,指出InnoDB通过redolog、undolog和锁机制三大组件协同工作:redolog保障持久性和原子性,采用WAL机制和循环写策略;undolog实现原子性和MVCC,记录反向操作形成版本链;锁机制确保隔离性,包括行锁、表锁和间隙锁。其次详细介绍了事务隔离级别,重点分析了InnoDB默认的可重复读(RR)级别,通过MVCC机制实现:利用行数据的隐藏字段(DB_TRX_ID/DB_ROLL_PTR)和ReadVi

2026-01-18 00:00:41 883

原创 【MySQL】深入理解聚簇索引与二级索引以及 “回表查询”

本文深入解析MySQL中聚簇索引与二级索引的核心差异,重点阐述回表查询的机制及优化策略。聚簇索引存储完整行数据,而二级索引仅保存索引值和主键,导致通过二级索引查询时需二次访问聚簇索引(回表),造成额外I/O开销。在高并发、大数据量场景下,回表会显著降低性能。优化方案包括:使用覆盖索引(最佳)、优先主键查询、缩小结果集、缓存热点数据等。通过合理控制回表查询,可有效提升SQL执行效率,案例显示优化后查询性能可提升100倍。核心在于区分必要与非必要回表场景,针对性采用优化措施。

2026-01-17 01:34:28 766

原创 【MySQL】深入理解 MySQL InnoDB 中 16KB 页式存储

InnoDB 将磁盘空间划分为一个个固定大小的 16KB 块,这个块就是 “页(Page)”—— 无论存储行数据、索引,还是回滚日志,都必须以 “页” 为单位读写。为什么是 16KB?:这是 InnoDB 默认配置(可通过修改,但生产中几乎不改),平衡了 “磁盘 IO 效率” 和 “内存利用率”:页太小(如 4KB):存储相同数据需要更多页,IO 次数增多;页太大(如 64KB):内存缓存时会浪费空间(比如只存少量数据却占 64KB 内存)。核心单位。

2026-01-17 01:05:44 862

java反射机制与动态代理

java反射机制与动态代理 java反射机制 java反射机制java反射机制java反射机制java反射机制

2010-03-28

内存卡低级格式化工具

内存卡低级格式化工具 内存卡低级格式化工具 内存卡低级格式化工具 内存卡低级格式化工具

2010-04-07

ExtGrid+SQL2005+Json

一个extjs+sql2005+json的例子

2009-09-09

extjs+json+j2ee签到系统

一个j2ee+extjs+json实现的登录,签到,以及员工信息显示其中用到了extjs的datagrid

2009-09-09

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除