- 博客(5)
- 收藏
- 关注
原创 慢SQL优化详解
摘要: 慢SQL优化流程分为四步:定位→分析→优化→验证。 定位:通过慢查询日志、监控工具(如Prometheus)、APM工具(SkyWalking)等发现慢SQL。 分析:使用EXPLAIN检查执行计划,重点关注访问类型(type)、索引使用(key)、扫描行数(rows)及额外信息(Extra)。 优化:常用手段包括: 加索引:遵循最左前缀原则设计复合索引; 避免索引失效:如避免字段函数操作、隐式类型转换; 分页优化:用主键分页或延迟关联减少深度分页开销; 覆盖索引:减少回表查询; 大表DDL:使用在
2025-10-12 00:08:56
461
原创 Stream流详解
本文全面解析了Java 8的Stream API核心特性与应用。Stream是函数式处理集合数据的工具,不存储数据且不修改原集合,支持链式调用和延迟执行。核心流程分为三步:创建Stream(集合/数组/静态方法)、中间操作(过滤/映射等延迟操作)、终止操作(触发执行并关闭流)。文章通过实际示例演示了Stream的典型用法,并强调了并行流注意事项。进阶部分深入探讨了Optional与Stream的结合使用、高级收集器(如分组groupingBy)等高级特性,以及性能调优建议。最后总结了Stream如何使代码更
2025-10-12 00:00:14
772
原创 泛型的边界详解
本文详细解析了Java泛型的边界概念,重点介绍了上界(extends)和下界(super)的使用场景。上界<? extends T>用于安全读取数据(协变),下界<? super T>用于安全写入数据(逆变),并阐述了PECS原则(Producer-Extends, Consumer-Super)。文章通过代码示例说明边界限制的原因,对比了List<Object>和List<? extends Object>的区别,并指出泛型不可变性的设计考量。最后提供了面试
2025-10-11 23:50:54
439
原创 ThreadLocal详解
ThreadLocal是Java中实现线程本地存储的关键类,通过为每个线程创建独立的变量副本来解决多线程共享问题。核心方法包括set()、get()、remove()和initialValue(),典型应用场景包括数据库连接管理、用户上下文传递和线程安全日期格式化。使用时需特别注意内存泄漏风险,必须调用remove()方法清理数据,尤其在复用线程的线程池场景中。相比synchronized,ThreadLocal以空间换时间,实现无锁线程安全。正确使用ThreadLocal能有效提升并发性能,但滥用可能导致
2025-10-11 18:44:01
490
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅