<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Francoder_的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/Francoder_</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Francoder_]]></copyright><item><title><![CDATA[关于那些mysql的数据读写和日志机制]]></title><link>https://blog.youkuaiyun.com/Francoder_/article/details/147836275</link><guid>https://blog.youkuaiyun.com/Francoder_/article/details/147836275</guid><author>Francoder_</author><pubDate>Fri, 09 May 2025 20:35:02 +0800</pubDate><description><![CDATA[MySQL的底层原理涉及数据读写与日志机制，主要关注InnoDB存储引擎。其核心组件包括缓冲池、日志系统和事务系统，共同确保数据的一致性和持久性。日志机制主要包括RedoLog、UndoLog和Binlog。RedoLog用于崩溃恢复，记录数据页的物理修改；UndoLog用于事务回滚和多版本并发控制，记录事务前的数据状态；Binlog用于主从复制和恢复，记录修改数据的SQL语句。MySQL采用两阶段提交机制确保RedoLog和Binlog的一致性。优化建议包括调整日志文件大小、选择适当的日志格式和监控长事务]]></description><category></category></item><item><title><![CDATA[Spring的三级缓存原来这么简单？！]]></title><link>https://blog.youkuaiyun.com/Francoder_/article/details/147568764</link><guid>https://blog.youkuaiyun.com/Francoder_/article/details/147568764</guid><author>Francoder_</author><pubDate>Sun, 27 Apr 2025 21:13:53 +0800</pubDate><description><![CDATA[那我们有没有什么办法让二级缓存在需要代理的时候返回代理对象 不需要返回代理的时候返回普通对象呢 有的兄弟有的 我们只需要在二级缓存下再增加一个三级缓存用于判断bean是否需要代理 如果需要 则往二级缓存中返回代理对象 不需要则返回普通对象 然后根据二级缓存解决依赖注入就可以了。这是只有一二级缓存的情况 可以看到第三列返回的是普通对象 可是如果a需要aop代理 我们应该返回的是代理对象而不是普通对象。接下来是我们先来看循环依赖问题。]]></description><category></category></item><item><title><![CDATA[将Spring ioc和aop底层原理融合bean的生命周期一起理解会怎么样？]]></title><link>https://blog.youkuaiyun.com/Francoder_/article/details/147568606</link><guid>https://blog.youkuaiyun.com/Francoder_/article/details/147568606</guid><author>Francoder_</author><pubDate>Sun, 27 Apr 2025 21:05:23 +0800</pubDate><description><![CDATA[不多说直接上图开讲。]]></description><category></category></item><item><title><![CDATA[docker search minio出现超时？]]></title><link>https://blog.youkuaiyun.com/Francoder_/article/details/147165438</link><guid>https://blog.youkuaiyun.com/Francoder_/article/details/147165438</guid><author>Francoder_</author><pubDate>Sat, 12 Apr 2025 15:02:46 +0800</pubDate><description><![CDATA[当我们search超时的时候，可以在网上搜寻最好的minio版本然后直接docker pull下来就可以了。直接拉取（无需先search）接下来我们分析一下原因。]]></description><category></category></item><item><title><![CDATA[关于你想知道的索引下推、回表、索引覆盖。]]></title><link>https://blog.youkuaiyun.com/Francoder_/article/details/147165165</link><guid>https://blog.youkuaiyun.com/Francoder_/article/details/147165165</guid><author>Francoder_</author><pubDate>Sat, 12 Apr 2025 14:42:40 +0800</pubDate><description><![CDATA[在数据库查询优化中，索引下推（Index Condition Pushdown, ICP）、回表（Back to Table）和索引覆盖（Covering Index）是三个关键机制。]]></description><category></category></item><item><title><![CDATA[ Java深度解析：hashCode与equals的核心区别与协同机制]]></title><link>https://blog.youkuaiyun.com/Francoder_/article/details/147164995</link><guid>https://blog.youkuaiyun.com/Francoder_/article/details/147164995</guid><author>Francoder_</author><pubDate>Sat, 12 Apr 2025 14:34:32 +0800</pubDate><description><![CDATA[在Java开发中，hashCode()和equals()是对象识别的两大基石方法。问题：若子类未正确重写方法，可能破坏对称性（如Parent.equals(Child)与Child.equals(Parent)结果不一致）。• 若a.equals(b) == true，则a.hashCode() == b.hashCode() 必须成立。• equals()：判断对象的逻辑相等性（内容是否相同）。• 哈希冲突激增：低质量的哈希算法会导致链表过长，使哈希表退化为线性结构（时间复杂度从O(1)变为O(n)）。]]></description><category></category></item><item><title><![CDATA[ Spring AOP底层详解：是不是就像给你家小区加个保安？]]></title><link>https://blog.youkuaiyun.com/Francoder_/article/details/147127850</link><guid>https://blog.youkuaiyun.com/Francoder_/article/details/147127850</guid><author>Francoder_</author><pubDate>Thu, 10 Apr 2025 21:19:22 +0800</pubDate><description><![CDATA[如果说IOC是Spring的“骨架”，AOP则是“神经系统”——前者管理对象的生命周期，后者控制行为增强。Spring AOP（面向切面编程） 就是代码世界的“保安系统”，它能将日志记录、权限校验、事务管理等横切关注点（CrossCutting Concerns）从业务逻辑中剥离，让核心代码更纯粹。AOP通过动态代理技术，在不修改源码的情况下，为代码插入统一的增强逻辑。动态代理通过反射或字节码增强实现，虽带来轻微性能损耗（约10%20%），但在大多数场景下，其提升的代码可维护性远大于此代价。]]></description><category></category></item><item><title><![CDATA[Spring IOC 底层详解：本质就和做饭与点外卖差不多！]]></title><link>https://blog.youkuaiyun.com/Francoder_/article/details/147127613</link><guid>https://blog.youkuaiyun.com/Francoder_/article/details/147127613</guid><author>Francoder_</author><pubDate>Thu, 10 Apr 2025 21:11:48 +0800</pubDate><description><![CDATA[传统开发中，对象A依赖对象B时，A需要自己new B()，就像自己买菜做饭。而IOC通过“反转”控制权，让容器（Spring）统一管理对象的生命周期和依赖注入，开发者只需声明“我需要什么”，无需关心“如何创建”。就像外卖解放了我们的双手，IOC解放了程序员的“造物主焦虑”。想象你每天要自己买菜、洗菜、炒菜才能吃上饭，而突然有一天有了外卖平台——你只需要告诉平台“我要什么”，平台就能把做好的饭菜送到你手上。Spring IOC（控制反转）就是这个“外卖平台”，它接管了程序中对象的创建和依赖关系的管理。]]></description><category></category></item></channel></rss>