<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[m0_73077921的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/m0_73077921</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; m0_73077921]]></copyright><item><title><![CDATA[分布式ID]]></title><link>https://blog.youkuaiyun.com/m0_73077921/article/details/154612251</link><guid>https://blog.youkuaiyun.com/m0_73077921/article/details/154612251</guid><author>m0_73077921</author><pubDate>Sun, 09 Nov 2025 16:30:35 +0800</pubDate><description><![CDATA[分布式ID的核心问题包括唯一性冲突、有序性不足、性能瓶颈、可用性风险、安全隐患等。解决方案需针对性处理：通过数据库分库分表自增优化保证唯一性；采用雪花算法或时间戳前缀确保有序；利用号段模式本地缓存提升性能；通过多活部署和降级策略保障可用性；使用ID混淆或随机后缀增强安全性。选型需根据场景需求，高并发有序场景推荐雪花算法或号段模式，小规模系统适用数据库自增，敏感业务可考虑优化版UUID。落地时需注意机器ID分配、号段规划、监控告警和兼容性测试。]]></description><category></category></item><item><title><![CDATA[分布式的cap,base,raft]]></title><link>https://blog.youkuaiyun.com/m0_73077921/article/details/154601673</link><guid>https://blog.youkuaiyun.com/m0_73077921/article/details/154601673</guid><author>m0_73077921</author><pubDate>Sun, 09 Nov 2025 10:33:33 +0800</pubDate><description><![CDATA[本文详细解析了分布式系统中的CAP理论、BASE理论、Paxos和Raft协议。CAP理论指出在一致性、可用性和分区容错性中只能三者择其二，实际系统多为CP或AP方案。BASE理论是CAP的工程实践补充，通过基本可用、软状态和最终一致性保证高可用性。Paxos作为首个分布式一致性算法，通过两阶段提交确保数据一致但实现复杂；Raft是Paxos的简化版，通过领导选举、日志复制和安全性保障三大机制更易理解和实现，已成为工业界主流选择。这些理论和技术共同构成了分布式系统设计的理论基础和实践指导。]]></description><category></category></item><item><title><![CDATA[redis的跳表]]></title><link>https://blog.youkuaiyun.com/m0_73077921/article/details/154448593</link><guid>https://blog.youkuaiyun.com/m0_73077921/article/details/154448593</guid><author>m0_73077921</author><pubDate>Wed, 05 Nov 2025 17:10:56 +0800</pubDate><description><![CDATA[跳表是一种多层有序链表结构，通过分层索引优化查找效率。底层为完整数据链表，上层为抽样索引层（如每隔几个节点抽一个），查找时从高层快速跳过节点逐步下探，将复杂度从O(n)降至平均O(log n)。其核心实现包括随机生成节点层级、多层指针维护和动态调整索引结构，兼具平衡树的性能与链表的简单性，特别适合范围查询，因此被Redis有序集合采用。]]></description><category></category></item><item><title><![CDATA[redis集群下如何使用lua脚本]]></title><link>https://blog.youkuaiyun.com/m0_73077921/article/details/154427736</link><guid>https://blog.youkuaiyun.com/m0_73077921/article/details/154427736</guid><author>m0_73077921</author><pubDate>Wed, 05 Nov 2025 09:51:06 +0800</pubDate><description><![CDATA[Redis集群下Lua脚本的执行影响与解决方案 原子性保障：Redis通过单线程模型保证Lua脚本在单节点执行的原子性，但在分布式集群中，原子性仅限单个节点，无法实现跨节点原子操作。 主从集群影响： 主节点执行脚本后将EVAL命令同步到从节点重新执行 存在主从延迟导致短暂数据不一致风险 故障转移可能造成脚本执行中断 分布式集群限制： 所有操作key必须属于同一槽位（CROSSSLOT错误） 无法保证跨节点操作的原子性 解决方案： 使用哈希标签（{tag}）强制key分配到同一槽位 避免脚本包含随机/时间相关]]></description><category></category></item><item><title><![CDATA[基于用户的协同过滤算法实现小说推荐算法]]></title><link>https://blog.youkuaiyun.com/m0_73077921/article/details/154141254</link><guid>https://blog.youkuaiyun.com/m0_73077921/article/details/154141254</guid><author>m0_73077921</author><pubDate>Thu, 30 Oct 2025 20:04:46 +0800</pubDate><description><![CDATA[本文介绍了基于用户协同过滤的小说推荐算法实现。系统通过NovelRecommendService接口定义推荐功能，包括用户推荐、相似度预计算和行为向量获取。核心实现类NovelRecommendServiceImpl采用多源用户行为数据（书架收藏、浏览记录）构建用户行为向量，通过计算用户相似度来生成推荐结果。算法考虑了冷启动问题，并使用Redis缓存优化性能。实现中综合了用户交互时长、频次等因素进行加权评分，并设定了相似用户阈值和推荐候选集大小等参数，确保推荐质量与效率的平衡。整个系统设计具有较好的可扩展性]]></description><category></category></item><item><title><![CDATA[HashMap的源码学习]]></title><link>https://blog.youkuaiyun.com/m0_73077921/article/details/154139939</link><guid>https://blog.youkuaiyun.com/m0_73077921/article/details/154139939</guid><author>m0_73077921</author><pubDate>Thu, 30 Oct 2025 19:28:41 +0800</pubDate><description><![CDATA[本文深入剖析了Java中HashMap的源码实现，重点分析了JDK 8及以上版本的核心原理和关键实现细节。HashMap基于哈希表实现，采用链表+红黑树（JDK 8引入）解决哈希冲突，并支持动态扩容。文章详细讲解了其核心属性、哈希函数设计、桶索引计算以及关键的put()方法实现流程，包括延迟初始化、链表转红黑树的条件等优化策略，帮助读者深入理解这一重要数据结构的底层实现机制。]]></description><category></category></item><item><title><![CDATA[redis主从复制]]></title><link>https://blog.youkuaiyun.com/m0_73077921/article/details/154094986</link><guid>https://blog.youkuaiyun.com/m0_73077921/article/details/154094986</guid><author>m0_73077921</author><pubDate>Wed, 29 Oct 2025 22:17:21 +0800</pubDate><description><![CDATA[Redis主从复制通过异步方式实现数据同步，分为全量复制和增量复制两个阶段。主节点生成RDB快照并发送给从节点完成初始化同步，后续通过复制偏移量和缓冲区实现增量同步。线上部署可采用一主多从架构，配置主节点密码、持久化和从节点只读模式，并通过info replication命令验证同步状态。需注意性能优化（如调整缓冲区大小）、高可用配置（结合哨兵）和监控关键指标，确保数据一致性及系统稳定性。]]></description><category></category></item><item><title><![CDATA[mysql线上主从集群设置]]></title><link>https://blog.youkuaiyun.com/m0_73077921/article/details/154093443</link><guid>https://blog.youkuaiyun.com/m0_73077921/article/details/154093443</guid><author>m0_73077921</author><pubDate>Wed, 29 Oct 2025 22:04:52 +0800</pubDate><description><![CDATA[MySQL 主从复制搭建方案摘要： 本方案详细描述了MySQL主从复制的线上部署流程，适用于生产环境。首先规划主从服务器环境，确保版本一致、时间同步、网络互通。主库需开启binlog并配置唯一ID，创建专用复制账号并锁定数据库获取binlog位置信息。从库需导入主库数据快照，配置server-id并设置只读模式。通过CHANGE MASTER命令建立主从连接后，启动复制进程。验证阶段检查Slave_IO_Running和Slave_SQL_Running状态，并进行数据同步测试。运维时需关注binlog清理]]></description><category></category></item><item><title><![CDATA[Future，FutureTask，CompletableFuture使用场景]]></title><link>https://blog.youkuaiyun.com/m0_73077921/article/details/154016371</link><guid>https://blog.youkuaiyun.com/m0_73077921/article/details/154016371</guid><author>m0_73077921</author><pubDate>Tue, 28 Oct 2025 14:15:28 +0800</pubDate><description><![CDATA[Java并发编程中，Future、FutureTask与Runnable、Callable是处理异步任务的核心组件。Runnable适用于无返回值任务，Callable支持返回结果和异常抛出。Future作为结果句柄可获取任务状态和结果，FutureTask是其实现类，可直接提交给线程池。主要应用场景包括：获取异步结果（Callable+Future）、手动控制任务执行（FutureTask）、任务取消（Future.cancel()）以及无返回值异步执行（Runnable）。]]></description><category></category></item><item><title><![CDATA[G1的动态对象年龄判定]]></title><link>https://blog.youkuaiyun.com/m0_73077921/article/details/154007349</link><guid>https://blog.youkuaiyun.com/m0_73077921/article/details/154007349</guid><author>m0_73077921</author><pubDate>Tue, 28 Oct 2025 09:55:48 +0800</pubDate><description><![CDATA[JVM 动态对象年龄判定机制通过灵活调整晋升策略优化内存管理。通用规则是当某年龄段对象总大小≥Survivor区50%时，该年龄及以上对象直接晋升老年代。G1收集器结合Region模型实现更智能的判定：动态计算候选晋升年龄，并综合老年代空间和回收收益决定晋升，避免传统固定阈值导致的&quot;年龄堆积&quot;问题。该机制优先级高于MaxTenuringThreshold，使内存管理更高效。实际应用中，建议通过监控调整Survivor Region数量，而非直接修改年龄阈值。这一设计使G1能更好地平衡内存]]></description><category></category></item><item><title><![CDATA[Java队列的详细特性学习]]></title><link>https://blog.youkuaiyun.com/m0_73077921/article/details/153967861</link><guid>https://blog.youkuaiyun.com/m0_73077921/article/details/153967861</guid><author>m0_73077921</author><pubDate>Mon, 27 Oct 2025 13:26:35 +0800</pubDate><description><![CDATA[Java队列(Queue)是遵循FIFO原则的集合，分为阻塞队列和非阻塞队列两大类。非阻塞队列如ConcurrentLinkedQueue采用CAS实现无锁并发，适合高吞吐场景；阻塞队列如ArrayBlockingQueue使用锁机制实现线程安全，支持生产者-消费者模型。特殊队列包括优先级队列PriorityBlockingQueue、延迟队列DelayQueue和双端队列Deque等，各有独特应用场景。底层实现上，数组队列性能稳定，链表队列扩容灵活，而SynchronousQueue则实现零缓冲的线程间直]]></description><category></category></item><item><title><![CDATA[spring的三级缓存及二三级缓存解决的问题]]></title><link>https://blog.youkuaiyun.com/m0_73077921/article/details/153964882</link><guid>https://blog.youkuaiyun.com/m0_73077921/article/details/153964882</guid><author>m0_73077921</author><pubDate>Mon, 27 Oct 2025 11:15:34 +0800</pubDate><description><![CDATA[本文详细解析了Spring通过三级缓存解决单例循环依赖的机制。三级缓存包括：存储完整Bean的一级缓存（singletonObjects）、存储早期引用的二级缓存（earlySingletonObjects）和存储工厂对象的三级缓存（singletonFactories）。核心流程通过提前暴露未完成初始化的Bean引用，同时利用工厂按需创建代理对象，确保单例性和完整性。二级缓存避免重复创建早期引用，三级缓存则解决AOP代理的按需创建问题。对于构造器注入的循环依赖，Spring通过@Lazy注解创建延迟代理来]]></description><category></category></item><item><title><![CDATA[操作系统常见面试题（java）]]></title><link>https://blog.youkuaiyun.com/m0_73077921/article/details/153922741</link><guid>https://blog.youkuaiyun.com/m0_73077921/article/details/153922741</guid><author>m0_73077921</author><pubDate>Sun, 26 Oct 2025 14:44:08 +0800</pubDate><description><![CDATA[Java后端面试操作系统核心考点解析 摘要：Java后端面试中操作系统问题聚焦进程线程、内存管理和I/O机制三大模块。进程线程方面需掌握进程/线程区别、线程状态转换及IPC通信方式；内存管理重点理解虚拟内存机制、分页/分段区别及LRU等页面置换算法；I/O模型需区分同步/异步、阻塞/非阻塞特性，掌握多路复用原理及epoll优势。死锁问题需明确四个必要条件及解决策略。这些知识点与Java并发编程（如Thread类、锁机制）、JVM内存模型及NIO网络编程深度关联，是构建高并发系统的底层基础。]]></description><category></category></item><item><title><![CDATA[G1中的算法，实现垃圾回收的方式]]></title><link>https://blog.youkuaiyun.com/m0_73077921/article/details/153868044</link><guid>https://blog.youkuaiyun.com/m0_73077921/article/details/153868044</guid><author>m0_73077921</author><pubDate>Sat, 25 Oct 2025 11:30:13 +0800</pubDate><description><![CDATA[G1垃圾回收器采用分区算法（Region-Based）管理堆内存，通过记忆集（Remembered Set）解决跨Region引用问题，并使用原始快照（SATB）算法保证并发标记准确性。其核心流程包括新生代GC、并发标记和混合回收，优先回收高垃圾占比Region以实现低延迟目标。最终标记阶段通过扫描所有Region的记忆集处理跨Region引用，确保标记完整性。G1通过动态调整回收范围平衡效率与STW时间，适合大堆内存场景。]]></description><category></category></item><item><title><![CDATA[三色标记、CMS执行流程、写屏障、增量同步、卡表及增量同步存储详解]]></title><link>https://blog.youkuaiyun.com/m0_73077921/article/details/153866307</link><guid>https://blog.youkuaiyun.com/m0_73077921/article/details/153866307</guid><author>m0_73077921</author><pubDate>Sat, 25 Oct 2025 09:31:05 +0800</pubDate><description><![CDATA[本文详解了垃圾回收中的三色标记、CMS执行流程及相关技术。三色标记（白、灰、黑）解决并发标记时的对象漏标问题。CMS通过7阶段（初始标记、并发标记、重新标记等）实现低延迟回收，利用写屏障和卡表记录引用变更。增量同步策略确保新增引用能被正确标记，数据存储在脏对象列表、卡表和标记队列中。这些技术共同保障了GC的高效执行，平衡了性能与准确性。]]></description><category></category></item><item><title><![CDATA[Jvm资料整理]]></title><link>https://blog.youkuaiyun.com/m0_73077921/article/details/153816565</link><guid>https://blog.youkuaiyun.com/m0_73077921/article/details/153816565</guid><author>m0_73077921</author><pubDate>Fri, 24 Oct 2025 20:56:13 +0800</pubDate><description><![CDATA[本文详细解析JVM运行时内存区域及其管理机制。主要内容包括：程序计数器（线程私有、无OOM）、Java虚拟机栈（存放栈帧，通过-Xss配置）、本地方法栈（与虚拟机栈合并管理）、Java堆（对象存储区，通过-Xms/-Xmx控制大小）、方法区（类元数据存储，JDK8后改为元空间）。文章还介绍了类加载器体系（启动类、扩展类、应用类及自定义加载器）及其双亲委派模型的工作流程（父类优先加载机制）。通过参数配置可优化各区域性能，文中提供了关键调优参数建议。]]></description><category></category></item><item><title><![CDATA[spring面试题从简到难]]></title><link>https://blog.youkuaiyun.com/m0_73077921/article/details/153790823</link><guid>https://blog.youkuaiyun.com/m0_73077921/article/details/153790823</guid><author>m0_73077921</author><pubDate>Fri, 24 Oct 2025 09:06:45 +0800</pubDate><description><![CDATA[摘要： 本文介绍了Spring框架的核心概念和基础应用，包括IOC（控制反转）与DI（依赖注入）的关系、Bean的作用域、依赖注入方式、Spring MVC处理流程、事务管理注解以及常用组件注解的区别。同时对比了Spring与SpringBoot的核心差异，重点解析了SpringBoot的自动配置机制。这些内容适合Spring初学者快速掌握框架基础，为面试和开发实践提供指导。]]></description><category></category></item><item><title><![CDATA[aop对spring单例bean三级缓存的影响]]></title><link>https://blog.youkuaiyun.com/m0_73077921/article/details/153786495</link><guid>https://blog.youkuaiyun.com/m0_73077921/article/details/153786495</guid><author>m0_73077921</author><pubDate>Thu, 23 Oct 2025 17:16:31 +0800</pubDate><description><![CDATA[本文分析了Spring框架中需要AOP增强的Bean处理机制：1) 多次获取时始终返回同一代理对象，由三级缓存机制保证单例唯一性；2) 二级缓存是避免重复创建代理的关键，缺少会导致单例破坏；3) 循环依赖时的&quot;提前代理&quot;不违背AOP原则，代理最终仍指向完整初始化的目标Bean。整体体现了Spring在原则性与灵活性之间的平衡设计。]]></description><category></category></item><item><title><![CDATA[spring面试题]]></title><link>https://blog.youkuaiyun.com/m0_73077921/article/details/153781099</link><guid>https://blog.youkuaiyun.com/m0_73077921/article/details/153781099</guid><author>m0_73077921</author><pubDate>Thu, 23 Oct 2025 14:39:30 +0800</pubDate><description><![CDATA[什么是 Spring IOC：IOC（Inversion of Control，控制反转）是 Spring 核心设计思想，指“对象的创建、配置、依赖管理权力，从业务代码转移到 IOC 容器”。传统开发中，开发者需手动new对象、维护依赖（如 A 依赖 B 需手动new B()IOC 模式下，开发者仅声明依赖需求（如注解标注），容器自动创建对象、注入依赖。核心思想依赖反转（Dependency Inversion）]]></description><category></category></item><item><title><![CDATA[Spring Bean 完整生命周期]]></title><link>https://blog.youkuaiyun.com/m0_73077921/article/details/153744858</link><guid>https://blog.youkuaiyun.com/m0_73077921/article/details/153744858</guid><author>m0_73077921</author><pubDate>Wed, 22 Oct 2025 20:08:41 +0800</pubDate><description><![CDATA[Bean生命周期涵盖从实例化到销毁的全流程，AOP在初始化后介入生成代理；三级缓存通过分层设计（延迟生成+缓存早期引用），既解决了单例Bean的循环依赖问题，又保证了AOP代理对象的唯一性，是Spring容器高效管理Bean的核心机制。]]></description><category></category></item></channel></rss>