<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[ajsbxi的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/ajsbxi</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; ajsbxi]]></copyright><item><title><![CDATA[Java 基础八股]]></title><link>https://blog.youkuaiyun.com/ajsbxi/article/details/153854087</link><guid>https://blog.youkuaiyun.com/ajsbxi/article/details/153854087</guid><author>ajsbxi</author><pubDate>Sun, 26 Oct 2025 06:45:00 +0800</pubDate><description><![CDATA[Java基础核心问题摘要：==与equals区别、equals与hashCode关系、字符串类比较、String不可变性]]></description><category></category></item><item><title><![CDATA[MySQL 八股]]></title><link>https://blog.youkuaiyun.com/ajsbxi/article/details/153853395</link><guid>https://blog.youkuaiyun.com/ajsbxi/article/details/153853395</guid><author>ajsbxi</author><pubDate>Sat, 25 Oct 2025 01:36:32 +0800</pubDate><description><![CDATA[MySQL 核心知识点摘要:存储引擎、索引、事务特性、隔离级别、索引失效场景]]></description><category></category></item><item><title><![CDATA[【JUC】核心知识点归纳]]></title><link>https://blog.youkuaiyun.com/ajsbxi/article/details/153531390</link><guid>https://blog.youkuaiyun.com/ajsbxi/article/details/153531390</guid><author>ajsbxi</author><pubDate>Sat, 18 Oct 2025 21:01:17 +0800</pubDate><description><![CDATA[本文梳理了线程基础（4种创建方式与6种状态流转）、线程安全的3大特性（原子性、可见性、有序性）、线程池的优势（资源复用、管理、响应提速）以及ThreadLocal的线程隔离机制（原理与内存泄漏防范）。重点对比了synchronized（JVM内置锁，支持锁升级）与ReentrantLock（基于AQS，支持公平/非公平锁）的特性差异，为面试和开发提供核心知识参考。]]></description><category></category></item><item><title><![CDATA[【Java 集合】核心知识点梳理]]></title><link>https://blog.youkuaiyun.com/ajsbxi/article/details/153531066</link><guid>https://blog.youkuaiyun.com/ajsbxi/article/details/153531066</guid><author>ajsbxi</author><pubDate>Sat, 18 Oct 2025 20:52:08 +0800</pubDate><description><![CDATA[Java 集合是用于存储、管理和操作一组对象的容器，核心作用是替代数组的局限性，提供更灵活、高效的数据存储方案。建议结合 “原理 + 面试题” 的方式复习，比如通过 “HashMap 的 put 流程” 串联哈希计算、冲突处理、扩容、树化等多个知识点，同时动手写简单示例（如 ArrayList 扩容测试、HashMap 去重测试），加深理解。
]]></description><category></category></item><item><title><![CDATA[【Java 基础】核心知识点梳理]]></title><link>https://blog.youkuaiyun.com/ajsbxi/article/details/153530896</link><guid>https://blog.youkuaiyun.com/ajsbxi/article/details/153530896</guid><author>ajsbxi</author><pubDate>Sat, 18 Oct 2025 20:37:19 +0800</pubDate><description><![CDATA[本文系统梳理了Java核心基础知识点，重点包括： Java四大特性：跨平台性（JVM实现）、面向对象、自动内存管理、安全性； JDK/JRE/JVM关系：JDK包含JRE和开发工具，JRE包含JVM和核心类库； 基本数据类型：8种类型及其内存占用和范围； 面向对象三大特性（封装、继承、多态）和六大设计原则（如单一职责、开闭原则等）。 文章层次清晰，通过表格和代码示例帮助理解，适合Java基础复习和面试准备。]]></description><category></category></item><item><title><![CDATA[【Redis】缓存穿透、击穿、雪崩场景分析]]></title><link>https://blog.youkuaiyun.com/ajsbxi/article/details/152561027</link><guid>https://blog.youkuaiyun.com/ajsbxi/article/details/152561027</guid><author>ajsbxi</author><pubDate>Fri, 17 Oct 2025 18:00:00 +0800</pubDate><description><![CDATA[本文探讨了Redis缓存中的三大常见问题：穿透、击穿和雪崩。针对缓存穿透问题，提出了缓存空对象和使用布隆过滤器两种解决方案；对于缓存击穿，介绍了互斥锁和逻辑过期两种应对策略；关于缓存雪崩，分析了其成因并提供了相应的缓解措施。文章还提供了具体的Java代码实现示例，帮助开发者理解如何在实际项目中应用这些解决方案。这些方法能有效提升系统稳定性和性能，避免因缓存问题导致的系统故障。]]></description><category></category></item><item><title><![CDATA[【Redis】缓存穿透原因和解决]]></title><link>https://blog.youkuaiyun.com/ajsbxi/article/details/152561462</link><guid>https://blog.youkuaiyun.com/ajsbxi/article/details/152561462</guid><author>ajsbxi</author><pubDate>Fri, 17 Oct 2025 08:00:00 +0800</pubDate><description><![CDATA[Redis缓存穿透是指请求不存在的数据导致每次请求都直接访问数据库的问题。本文分析了缓存穿透的原因（恶意攻击、前端bug、用户误操作）及其对数据库性能的影响，并介绍了两种解决方案：缓存空对象（简单易实现，但占用缓存空间）和布隆过滤器（高效但存在误判率）。文章通过项目实例展示了缓存空对象的实现方式，对比了两种方案的优缺点，并建议根据业务场景选择合适方案。最后强调合理设置空值过期时间、监控异常请求和结合其他防护措施的重要性。]]></description><category></category></item><item><title><![CDATA[【Redis】缓存热点数据]]></title><link>https://blog.youkuaiyun.com/ajsbxi/article/details/152561491</link><guid>https://blog.youkuaiyun.com/ajsbxi/article/details/152561491</guid><author>ajsbxi</author><pubDate>Thu, 16 Oct 2025 18:00:00 +0800</pubDate><description><![CDATA[本项目使用Redis作为缓存层，采用经典的Cache-Aside模式提升系统性能。主要缓存店铺信息和店铺类型数据，通过统一键命名规范（如&quot;cache:shop:&quot;前缀）和合理过期时间设置（30分钟）实现高效缓存。查询时先检查Redis，命中则直接返回，未命中则查询数据库后写入缓存。实现中特别注意空值处理和JSON序列化，并提出了缓存预热、粒度控制等优化建议。该方案显著提高了响应速度，减轻了数据库压力，且易于扩展新数据类型。]]></description><category></category></item><item><title><![CDATA[【Redis】Cache更新策略]]></title><link>https://blog.youkuaiyun.com/ajsbxi/article/details/152563316</link><guid>https://blog.youkuaiyun.com/ajsbxi/article/details/152563316</guid><author>ajsbxi</author><pubDate>Thu, 16 Oct 2025 08:00:00 +0800</pubDate><description><![CDATA[本文总结了高并发系统中缓存与数据库一致性的解决方案。推荐采用Cache Aside Pattern：先更新数据库再删除缓存，避免脏数据和保证最终一致性。同时提出增强策略包括延迟双删和异步更新缓存，并分析了不推荐的先删缓存再更新数据库方案的风险。面试要点强调合理设置过期时间、监控命中率，提供了清晰的答题模板，帮助开发者掌握缓存更新的核心策略。]]></description><category></category></item><item><title><![CDATA[【Redis】缓存读/写操作流程]]></title><link>https://blog.youkuaiyun.com/ajsbxi/article/details/152561475</link><guid>https://blog.youkuaiyun.com/ajsbxi/article/details/152561475</guid><author>ajsbxi</author><pubDate>Wed, 15 Oct 2025 22:00:00 +0800</pubDate><description><![CDATA[Redis缓存更新策略解析 本文详细介绍了Redis缓存读/写操作流程及常见问题。重点分析了三种缓存更新策略：1)先更新缓存再更新数据库；2)先更新数据库再删除缓存；3)先删除缓存再更新数据库。推荐&quot;先更新数据库再删除缓存&quot;策略，因其实现简单、避免更新失败且能保证最终一致性。对于高一致性场景，建议采用&quot;延迟双删&quot;或&quot;异步更新缓存&quot;方案。文章还探讨了缓存淘汰机制、线程安全问题和分布式锁解决方案。最后给出了实际应用中的选择建议，包括合理设置过期时间、缓]]></description><category></category></item><item><title><![CDATA[【Redis】实现用户登录机制总结]]></title><link>https://blog.youkuaiyun.com/ajsbxi/article/details/152467328</link><guid>https://blog.youkuaiyun.com/ajsbxi/article/details/152467328</guid><author>ajsbxi</author><pubDate>Wed, 15 Oct 2025 17:43:55 +0800</pubDate><description><![CDATA[本文总结了基于Redis实现的用户登录机制，主要包括：
1) 使用Redis替代传统Session实现分布式会话管理；
2) 详细登录流程包含验证码校验、用户查询/创建、Token生成和存储；
3) 采用双拦截器设计实现登录验证和Token自动刷新；
4) Redis存储设计采用Hash结构存储用户信息并设置过期时间；
5) 解决了分布式环境下用户状态共享和登录状态失效问题。项目通过Redis缓存减少数据库压力，提升系统扩展性和用户体验，同时提供了数据类型一致性和安全考虑等最佳实践建议。]]></description><category></category></item><item><title><![CDATA[微头条业务流程]]></title><link>https://blog.youkuaiyun.com/ajsbxi/article/details/140390035</link><guid>https://blog.youkuaiyun.com/ajsbxi/article/details/140390035</guid><author>ajsbxi</author><pubDate>Sun, 19 Jan 2025 18:38:35 +0800</pubDate><description><![CDATA[用户登录、获取用户信息、用户注册、微头条页面的导航栏回显、分页查询头条信息、查询头条详情、以及文章的发布、修改、删除和回显等业务流程。]]></description><category></category></item><item><title><![CDATA[【MySQL 进阶之路】拓展 - Java 常见锁机制]]></title><link>https://blog.youkuaiyun.com/ajsbxi/article/details/144381177</link><guid>https://blog.youkuaiyun.com/ajsbxi/article/details/144381177</guid><author>ajsbxi</author><pubDate>Tue, 10 Dec 2024 19:13:27 +0800</pubDate><description><![CDATA[以下是几个与 **Java 后端开发** 相关的面试问题和 **锁机制** 的相关表格，帮助更好地理解常见的锁类型和应用场景。这些表格提供了多维度的比较和解答，帮助您在面试中全面理解和应用不同的锁机制和并发控制策略，尤其在 Java 后端开发中会涉及到这些问题。的相关表格，帮助更好地理解常见的锁类型和应用场景。]]></description><category></category></item><item><title><![CDATA[【MySQL 进阶之路】基础语法及优化技巧]]></title><link>https://blog.youkuaiyun.com/ajsbxi/article/details/144380915</link><guid>https://blog.youkuaiyun.com/ajsbxi/article/details/144380915</guid><author>ajsbxi</author><pubDate>Tue, 10 Dec 2024 18:58:08 +0800</pubDate><description><![CDATA[DML 是数据库操作语言的子集，用于数据的增、删、改、查四个基本操作。熟悉并掌握 MySQL 的 DML 基础语法对于数据库开发至关重要。通过合理运用 `INSERT`、`SELECT`、`UPDATE`、`DELETE`，以及各种查询优化技巧，可以显著提高数据库的性能和查询效率。在实际开发过程中，合理的索引设计、联表查询优化以及事务管理是提升应用性能和数据一致性的重要手段。]]></description><category></category></item><item><title><![CDATA[【MySQL 进阶之路】存储引擎和SQL优化技巧分析]]></title><link>https://blog.youkuaiyun.com/ajsbxi/article/details/144358504</link><guid>https://blog.youkuaiyun.com/ajsbxi/article/details/144358504</guid><author>ajsbxi</author><pubDate>Mon, 09 Dec 2024 21:48:47 +0800</pubDate><description><![CDATA[本文详细对比了InnoDB和MyISAM存储引擎的异同，分别阐述了它们在事务支持、锁机制、查询优化等方面的特点及应用场景。同时，探讨了如何识别和解决数据库中的死锁问题、常用的SQL优化技巧以及不同事务隔离级别的区别。]]></description><category></category></item><item><title><![CDATA[【MySQL 进阶之路】了解 性能优化 与 设计原则]]></title><link>https://blog.youkuaiyun.com/ajsbxi/article/details/144358393</link><guid>https://blog.youkuaiyun.com/ajsbxi/article/details/144358393</guid><author>ajsbxi</author><pubDate>Mon, 09 Dec 2024 21:35:20 +0800</pubDate><description><![CDATA[本文全面探讨了数据库优化和设计中的关键概念与技巧。首先介绍了B+树的结构优势，如何通过减少层级和提高查询效率优化数据库。接着讲解了最左前缀原则在查询优化中的作用，以及索引覆盖如何提升查询性能。进一步分析了MySQL中的AUTO_INCREMENT属性及其工作原理，深入探讨了数据库范式的规范化设计及其对数据一致性和冗余减少的影响。最后，提出了优化数据库查询性能的多种策略，如创建合适的索引、避免不必要的查询操作和合理的表设计。]]></description><category></category></item><item><title><![CDATA[【MySQL 进阶之路】事务并发情况分析]]></title><link>https://blog.youkuaiyun.com/ajsbxi/article/details/144354569</link><guid>https://blog.youkuaiyun.com/ajsbxi/article/details/144354569</guid><author>ajsbxi</author><pubDate>Mon, 09 Dec 2024 19:05:08 +0800</pubDate><description><![CDATA[在MySQL的事务并发控制中，不同的事务操作对数据产生不同的锁定效果。通过合理的锁机制控制，MySQL能够有效保证事务的隔离性，避免数据冲突和不一致。理解事务的并发行为和锁粒度，有助于开发人员在设计数据库操作时做出更好的决策，尤其是在处理高并发和复杂事务时，能够提升系统的效率和稳定性。]]></description><category></category></item><item><title><![CDATA[【MySQL 进阶之路】索引失效的11种情况]]></title><link>https://blog.youkuaiyun.com/ajsbxi/article/details/144352130</link><guid>https://blog.youkuaiyun.com/ajsbxi/article/details/144352130</guid><author>ajsbxi</author><pubDate>Mon, 09 Dec 2024 17:55:08 +0800</pubDate><description><![CDATA[在MySQL的查询优化中，索引是一项至关重要的技术，它能够大大提升数据检索的效率。本文将讨论这11种常见情况，帮助开发者更好地理解索引的使用及优化。]]></description><category></category></item><item><title><![CDATA[【MySQL 进阶之路】事务隔离级别]]></title><link>https://blog.youkuaiyun.com/ajsbxi/article/details/144314548</link><guid>https://blog.youkuaiyun.com/ajsbxi/article/details/144314548</guid><author>ajsbxi</author><pubDate>Sat, 07 Dec 2024 18:41:27 +0800</pubDate><description><![CDATA[数据库的事务隔离级别（Transaction Isolation Levels）决定了事务之间如何互相隔离，并发执行时不同事务之间的可见性。每个级别在数据一致性和并发性之间做出了不同的权衡。根据 SQL 标准，事务隔离级别有四种：读未提交、读已提交、可重复读、和串行化。]]></description><category></category></item><item><title><![CDATA[【MySQL 进阶之路】InnoDB引擎详解]]></title><link>https://blog.youkuaiyun.com/ajsbxi/article/details/144312838</link><guid>https://blog.youkuaiyun.com/ajsbxi/article/details/144312838</guid><author>ajsbxi</author><pubDate>Sat, 07 Dec 2024 18:19:35 +0800</pubDate><description><![CDATA[在 MySQL 的众多存储引擎中，InnoDB 是最常用的引擎之一，它支持事务、行级锁、外键等功能，适用于高并发、高数据完整性要求的场景。本篇文章将从多个维度深入解析 InnoDB 存储引擎的内部结构和原理，帮助大家更好地理解其工作机制，从而更高效地进行性能调优和问题排查。]]></description><category></category></item></channel></rss>