<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[chendemingxxx的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/chendemingxxx</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; chendemingxxx]]></copyright><item><title><![CDATA[CompletableFuture]]></title><link>https://blog.youkuaiyun.com/chendemingxxx/article/details/158624280</link><guid>https://blog.youkuaiyun.com/chendemingxxx/article/details/158624280</guid><author>chendemingxxx</author><pubDate>Tue, 03 Mar 2026 23:56:38 +0800</pubDate><description><![CDATA[本文全面介绍了Java中CompletableFuture的使用方法。首先讲解基础用法，包括runAsync()执行无返回值任务和supplyAsync()执行有返回值任务。然后重点介绍了任务编排功能，通过thenApply()/thenAccept()实现串行执行，以及thenCombine()/allOf()/anyOf()实现并行组合。最后详细说明了异常处理机制，包括exceptionally()异常兜底、handle()全场景处理和whenComplete()结果监听。所有示例代码均可直接运行，帮助]]></description><category></category></item><item><title><![CDATA[JVM实践]]></title><link>https://blog.youkuaiyun.com/chendemingxxx/article/details/157773898</link><guid>https://blog.youkuaiyun.com/chendemingxxx/article/details/157773898</guid><author>chendemingxxx</author><pubDate>Thu, 05 Feb 2026 22:06:55 +0800</pubDate><description><![CDATA[本文介绍了JVM调优的实践方法，包括参数设置位置、常用调优参数、监控工具以及内存泄漏和CPU飙高的排查思路。主要内容涵盖：JVM参数可在启动命令中设置；调优参数包括堆空间、虚拟机栈等配置；常用工具有jps、jstack等命令和jconsole、VisualVM可视化工具；内存泄漏排查通过jmap获取dump文件分析；CPU飙高问题通过top、ps和jstack命令定位线程问题。这些方法可帮助开发者快速诊断和解决JVM相关问题。]]></description><category></category></item><item><title><![CDATA[垃圾回收（GC）]]></title><link>https://blog.youkuaiyun.com/chendemingxxx/article/details/157768982</link><guid>https://blog.youkuaiyun.com/chendemingxxx/article/details/157768982</guid><author>chendemingxxx</author><pubDate>Thu, 05 Feb 2026 18:56:17 +0800</pubDate><description><![CDATA[本文介绍了JVM垃圾回收机制的核心概念。主要内容包括：1）对象回收条件（无引用指向时被回收）；2）垃圾定位方法（引用计数法、可达性分析算法）；3）三种回收算法（标记清除、复制、标记整理）；4）分代回收策略（新生代和老年代的不同处理）；5）四种垃圾回收器（串行、并行、CMS、G1）；6）四种引用类型（强、软、弱、虚）及其回收时机。重点讲解了G1回收器的工作原理，包括Young GC和Mixed GC两种模式，以及它们如何通过复制算法高效管理内存。]]></description><category></category></item><item><title><![CDATA[类加载器篇]]></title><link>https://blog.youkuaiyun.com/chendemingxxx/article/details/157735385</link><guid>https://blog.youkuaiyun.com/chendemingxxx/article/details/157735385</guid><author>chendemingxxx</author><pubDate>Wed, 04 Feb 2026 19:32:45 +0800</pubDate><description><![CDATA[摘要：本文介绍了Java类加载器的核心概念，包括类加载器的作用（将字节码加载到JVM）、四种类型（启动类、扩展类、应用类和自定义类加载器）。重点讲解了双亲委派模型的工作原理（&quot;先找父类再自己加载&quot;）及其重要性（保证核心类唯一性和安全性）。最后详细解析了类装载的五个执行阶段：加载→验证→准备→解析→初始化，强调准备阶段赋默认值、初始化阶段执行显式赋值和静态代码块的特性。]]></description><category></category></item><item><title><![CDATA[JVM组成]]></title><link>https://blog.youkuaiyun.com/chendemingxxx/article/details/157518449</link><guid>https://blog.youkuaiyun.com/chendemingxxx/article/details/157518449</guid><author>chendemingxxx</author><pubDate>Wed, 04 Feb 2026 18:26:00 +0800</pubDate><description><![CDATA[本文介绍了JVM核心组件知识：1）程序计数器存储下一条指令地址，线程私有；2）Java堆是线程共享的对象存储区，分为新生代和老年代，Java 8用元空间替代永久代以节省内存；3）虚拟机栈是线程私有内存，由栈帧组成方法调用；4）方法区存储类信息和常量池，Java 8改为元空间移至本地内存；5）堆栈区别在于堆存储对象且GC回收，栈存储局部变量且线程私有。还讨论了局部变量线程安全、栈溢出条件和垃圾回收范围等问题。]]></description><category></category></item><item><title><![CDATA[线程池使用场景]]></title><link>https://blog.youkuaiyun.com/chendemingxxx/article/details/157509599</link><guid>https://blog.youkuaiyun.com/chendemingxxx/article/details/157509599</guid><author>chendemingxxx</author><pubDate>Thu, 29 Jan 2026 19:48:36 +0800</pubDate><description><![CDATA[本文介绍了线程池的常见使用场景以及相关并发控制技术。主要内容包括：1）线程池的三种典型应用场景：异步处理非核心流程、高并发任务处理、网络/IO密集型任务；2）使用Semaphore信号量控制方法并发访问线程数量；3）ThreadLocal机制实现线程隔离变量存储。通过代码示例展示了CountDownLatch、Semaphore和ThreadLocal的具体实现方式，并对比了ThreadLocal与synchronized的区别。文章强调ThreadLocal的核心优势在于为每个线程提供独立变量副本。]]></description><category></category></item><item><title><![CDATA[线程池使用篇]]></title><link>https://blog.youkuaiyun.com/chendemingxxx/article/details/157430255</link><guid>https://blog.youkuaiyun.com/chendemingxxx/article/details/157430255</guid><author>chendemingxxx</author><pubDate>Thu, 29 Jan 2026 14:36:48 +0800</pubDate><description><![CDATA[本文介绍了线程池的核心概念和常见问题。主要内容包括：1. 线程池的核心参数（核心线程数、最大线程数、存活时间等）和执行原理；2. 常见的阻塞队列（LinkedBlockingQueue和ArrayBlockingQueue）；3. 如何根据任务类型确定核心线程数；4. 三种常见线程池类型（FixedThreadPool、SingleThreadExecutor、CachedThreadPool）的特点和使用场景。文章通过代码示例和图示详细讲解了线程池的工作机制，适合开发者快速掌握线程池的核心知识。]]></description><category></category></item><item><title><![CDATA[线程中的并发安全]]></title><link>https://blog.youkuaiyun.com/chendemingxxx/article/details/157363039</link><guid>https://blog.youkuaiyun.com/chendemingxxx/article/details/157363039</guid><author>chendemingxxx</author><pubDate>Tue, 27 Jan 2026 12:53:06 +0800</pubDate><description><![CDATA[本文摘要： 本文系统梳理了Java并发编程的核心知识点，包括： synchronized原理：基于Monitor实现，包含锁升级过程（无锁→偏向锁→轻量级锁→重量级锁）； JMM内存模型：定义线程工作内存与主内存的交互规则，保证多线程可见性； CAS机制：通过比较交换实现无锁原子操作，依赖自旋重试； volatile特性：保证可见性（禁用JIT优化）和禁止指令重排序（内存屏障）； AQS框架：JUC并发工具基石，通过CLH队列和CAS管理线程同步； ReentrantLock：基于AQS实现，支持可中断、超]]></description><category></category></item><item><title><![CDATA[多线程基本知识]]></title><link>https://blog.youkuaiyun.com/chendemingxxx/article/details/157360177</link><guid>https://blog.youkuaiyun.com/chendemingxxx/article/details/157360177</guid><author>chendemingxxx</author><pubDate>Sun, 25 Jan 2026 19:39:37 +0800</pubDate><description><![CDATA[文章摘要： 本文介绍了线程的基础知识，包括线程与进程的区别（资源分配与CPU调度）、并发与并行的概念（应对vs执行多任务）。重点讲解了4种创建线程的方式：继承Thread类、实现Runnable/Callable接口（支持返回值）及线程池（推荐生产使用）。通过状态图说明线程生命周期（新建→可运行→阻塞/等待→终止），并对比了wait/sleep的异同（锁释放、唤醒机制）。最后给出保证线程顺序执行的join方法，以及停止线程的两种方案：volatile标记变量和interrupt中断机制。核心知识点覆盖线程创]]></description><category></category></item><item><title><![CDATA[List和Map篇]]></title><link>https://blog.youkuaiyun.com/chendemingxxx/article/details/157294801</link><guid>https://blog.youkuaiyun.com/chendemingxxx/article/details/157294801</guid><author>chendemingxxx</author><pubDate>Sun, 25 Jan 2026 15:11:57 +0800</pubDate><description><![CDATA[本文总结了Java集合框架中的List和HashMap相关面试要点。List部分介绍了数组底层原理、ArrayList的动态扩容机制及与LinkedList的区别；HashMap部分讲解了哈希表原理、put方法流程、哈希碰撞解决方案及高效寻址算法。核心内容包括：ArrayList基于动态数组实现自动扩容，LinkedList采用双向链表结构；HashMap通过哈希函数+位运算实现高效寻址，使用链表+红黑树解决哈希冲突，并在特定条件下触发扩容。全文通过示意图和代码示例，清晰呈现了这些数据结构的底层实现原理和性]]></description><category></category></item><item><title><![CDATA[RabbitMQ篇]]></title><link>https://blog.youkuaiyun.com/chendemingxxx/article/details/157223117</link><guid>https://blog.youkuaiyun.com/chendemingxxx/article/details/157223117</guid><author>chendemingxxx</author><pubDate>Fri, 23 Jan 2026 15:59:42 +0800</pubDate><description><![CDATA[本文总结了RabbitMQ的核心知识点，包括消息可靠性保障、重复消费处理、死信交换机和延迟队列实现、消息堆积解决方案以及高可用机制。重点介绍了生产者/消费者确认机制、消息持久化、TTL+死信队列实现延迟消息、惰性队列扩容和镜像/仲裁集群等高可用方案。文章提供了SpringAMQP配置示例和面试回答要点，帮助开发者全面掌握RabbitMQ的关键技术。]]></description><category></category></item><item><title><![CDATA[微服务组件篇(含业务问题)]]></title><link>https://blog.youkuaiyun.com/chendemingxxx/article/details/157178501</link><guid>https://blog.youkuaiyun.com/chendemingxxx/article/details/157178501</guid><author>chendemingxxx</author><pubDate>Wed, 21 Jan 2026 19:55:17 +0800</pubDate><description><![CDATA[本文摘要： 微服务架构学习笔记总结了Spring Cloud核心组件和关键技术点。主要内容包括：1）Nacos作为注册中心实现服务发现与监控；2）LoadBalancer负载均衡策略及自定义实现；3）服务雪崩解决方案（熔断降级）；4）SkyWalking服务监控工具；5）限流技术（Nginx漏桶算法/网关令牌桶算法）；6）分布式系统理论（CAP/BASE）；7）基于MQ的分布式事务实现方案；8）接口幂等性设计。重点分析了注册中心选型、负载均衡流程、熔断状态机等核心机制，为构建高可用微服务系统提供了实践指导。]]></description><category></category></item><item><title><![CDATA[MyBatis篇]]></title><link>https://blog.youkuaiyun.com/chendemingxxx/article/details/157174931</link><guid>https://blog.youkuaiyun.com/chendemingxxx/article/details/157174931</guid><author>chendemingxxx</author><pubDate>Tue, 20 Jan 2026 14:38:58 +0800</pubDate><description><![CDATA[本文介绍了MyBatis的核心知识点：1)执行流程分为初始化阶段(加载配置构建SqlSessionFactory)和运行时阶段(创建SqlSession通过Executor执行SQL)；2)支持延迟加载但默认关闭，可通过fetchType=lazy开启；3)缓存机制包括SqlSession级别的一级缓存(默认开启)和Mapper级别的二级缓存(需手动开启)；4)参数占位符#{}使用预编译防止SQL注入，${}是字符串拼接存在安全风险。文章通过流程图和代码示例详细说明了各机制的实现原理和使用场景。]]></description><category></category></item><item><title><![CDATA[Spring篇]]></title><link>https://blog.youkuaiyun.com/chendemingxxx/article/details/157144159</link><guid>https://blog.youkuaiyun.com/chendemingxxx/article/details/157144159</guid><author>chendemingxxx</author><pubDate>Mon, 19 Jan 2026 23:43:07 +0800</pubDate><description><![CDATA[本文总结了Spring框架的核心知识点，包括单例bean的线程安全性、AOP实现原理、事务失效场景、bean生命周期、循环依赖解决方案、MVC执行流程和自动配置原理。重点分析了Spring单例bean的非线程安全特性，AOP在日志记录和事务管理中的应用，以及三级缓存解决循环依赖的机制。同时详细讲解了Spring事务失效的常见原因和解决方案，并梳理了SpringMVC的完整请求处理流程和Spring Boot的自动配置实现原理。这些内容涵盖了Spring框架面试中的高频考点，对开发者深入理解Spring核心。]]></description><category></category></item><item><title><![CDATA[Mysql面试篇]]></title><link>https://blog.youkuaiyun.com/chendemingxxx/article/details/156946355</link><guid>https://blog.youkuaiyun.com/chendemingxxx/article/details/156946355</guid><author>chendemingxxx</author><pubDate>Wed, 14 Jan 2026 20:42:25 +0800</pubDate><description><![CDATA[本文主要介绍了MySQL数据库的几个核心知识点：1. 慢查询分析方法，通过EXPLAIN命令分析执行计划；2. MySQL索引原理，重点讲解B+树结构及其优势；3. 聚簇索引与非聚簇索引的区别及回表查询；4. 覆盖索引与超大分页优化；5. 常见索引失效场景；6. 事务特性(ACID)和隔离级别；7. undo log与redo log的区别及作用。文章通过图文结合的方式，深入浅出地讲解了MySQL的底层原理和优化技巧，适合数据库开发人员学习参考。]]></description><category></category></item><item><title><![CDATA[redis复习（2）]]></title><link>https://blog.youkuaiyun.com/chendemingxxx/article/details/156763707</link><guid>https://blog.youkuaiyun.com/chendemingxxx/article/details/156763707</guid><author>chendemingxxx</author><pubDate>Tue, 13 Jan 2026 14:37:20 +0800</pubDate><description><![CDATA[Redis面试题摘要： 主从复制：通过主从集群实现读写分离，数据同步分为全量同步（首次连接时完整RDB传输）和增量同步（基于命令日志的增量更新）。 哨兵模式：监控主从节点健康状态，自动故障恢复（选举新主节点），解决脑裂问题需配置min-replicas-to-write和min-replicas-max-lag。 分片集群：多Master节点存储不同数据，通过哈希槽（16384个）分配数据，解决海量存储和高并发写问题。 高性能原因：单线程避免竞争，纯内存操作，I/O多路复用（如epoll）高效处理网络请求，]]></description><category></category></item><item><title><![CDATA[redis复习篇（1）]]></title><link>https://blog.youkuaiyun.com/chendemingxxx/article/details/156719686</link><guid>https://blog.youkuaiyun.com/chendemingxxx/article/details/156719686</guid><author>chendemingxxx</author><pubDate>Fri, 09 Jan 2026 14:40:05 +0800</pubDate><description><![CDATA[本文介绍了Redis常见的面试问题及解决方案，主要包括： 缓存穿透：查询不存在数据导致数据库压力，解决方案包括缓存空数据和布隆过滤器。 缓存击穿：热点key过期引发高并发查询，可通过互斥锁或不设置过期时间解决。 缓存雪崩：大量key同时失效或Redis宕机，可通过随机TTL、集群模式和多级缓存应对。 双写一致性：根据业务需求选择强一致性（分布式锁）或最终一致性（异步通知）。 持久化机制：RDB快照和AOF日志的优缺点及适用场景。 数据过期策略：惰性删除和定期删除的结合使用。 数据淘汰策略：内存不足时的LRU]]></description><category></category></item><item><title><![CDATA[mongodb的基本命令]]></title><link>https://blog.youkuaiyun.com/chendemingxxx/article/details/147539317</link><guid>https://blog.youkuaiyun.com/chendemingxxx/article/details/147539317</guid><author>chendemingxxx</author><pubDate>Thu, 08 Jan 2026 12:18:09 +0800</pubDate><description><![CDATA[本文介绍了MongoDB的基本概念、特点及常用操作命令。MongoDB作为非关系型数据库，适用于高并发读写、海量数据存储和高扩展性需求的场景，如社交、游戏、物流等领域。文章对比了MongoDB与MySQL的体系结构差异，详细说明了BSON数据类型的特点。在操作层面，讲解了数据库和集合的创建、查看、删除等基本命令，并演示了文档的插入方法。MongoDB支持高性能数据存储、自动故障转移和丰富的查询功能，通过灵活的数据模型满足多样化业务需求。]]></description><category></category></item><item><title><![CDATA[redis的数据类型和简单命令复习大全]]></title><link>https://blog.youkuaiyun.com/chendemingxxx/article/details/147310979</link><guid>https://blog.youkuaiyun.com/chendemingxxx/article/details/147310979</guid><author>chendemingxxx</author><pubDate>Fri, 12 Sep 2025 13:37:31 +0800</pubDate><description><![CDATA[Redis是一种基于键值对的NoSQL数据库，支持多种数据结构（字符串、哈希、列表、集合等），具有高性能（内存存储）、丰富功能（过期键、发布订阅等）和持久化特性。文章介绍了Redis的基本特性、安装方法，以及常用命令如SET、GET、MSET/MGET和KEYS的使用示例，帮助用户快速掌握Redis基础操作。]]></description><category></category></item><item><title><![CDATA[MyBatis-Plus的使用]]></title><link>https://blog.youkuaiyun.com/chendemingxxx/article/details/145537029</link><guid>https://blog.youkuaiyun.com/chendemingxxx/article/details/145537029</guid><author>chendemingxxx</author><pubDate>Tue, 11 Mar 2025 09:43:00 +0800</pubDate><description><![CDATA[MyBatis-Plus(简称 MP) 是⼀个 MyBatis 的增强⼯具, 在 MyBatis 的基础上只做增强不做改变, 为简化开发. 提⾼效率⽽⽣。润物⽆声: 只做增强不做改变，引⼊它不会对现有⼯程产⽣影响，如丝般顺滑.效率⾄上: 只需简单配置，即可快速进⾏单表 CRUD 操作，从⽽节省⼤量时间.丰富功能: 代码⽣成、⾃动分⻚、逻辑删除、⾃动填充、拦截器等功能⼀应俱全.⼴泛认可: 连续 5 年获得开源中国年度最佳开源项⽬殊荣，Github 累计 16K Star.]]></description><category></category></item></channel></rss>