<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[编程探索与数字构建 | Python与Java之旅]]></title><description><![CDATA[欢迎来到我的技术博客！在这里，我将分享我在Python和Java这两种强大编程语言的学习和实践旅程。作为一个对构建数字人和知识库充满热情的技术爱好者，我希望能通过这个平台与你一起探讨、学习并突破编程的界限。  ]]></description><link>https://blog.youkuaiyun.com/qq_22129643</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; qq_22129643]]></copyright><item><title><![CDATA[【白话树】之 二叉树]]></title><link>https://blog.youkuaiyun.com/qq_22129643/article/details/142289229</link><guid>https://blog.youkuaiyun.com/qq_22129643/article/details/142289229</guid><author>qq_22129643</author><pubDate>Sun, 15 Sep 2024 22:23:48 +0800</pubDate><description><![CDATA[二叉树：是一种非线性数据结构，是“分而治之”思想的一种实现。和链表一样，二叉树最基本的单位也是节点。只是二叉树的节点，不仅包含值本身，也包含了左子节点和右子节点的引用。二叉树（binary tree）是n（n≥0）个节点构成的集合，它或为空树（n=0）​，或满足以下两个条件：1）有且仅有一个称为根的节点；2）除根节点以外，其余节点分为两个互不相交的子集T1和T2，分别称为T的左子树和右子树，且T1和T2本身都是二叉树。]]></description><category></category></item><item><title><![CDATA[Java8函数式接口全攻略]]></title><link>https://blog.youkuaiyun.com/qq_22129643/article/details/142230286</link><guid>https://blog.youkuaiyun.com/qq_22129643/article/details/142230286</guid><author>qq_22129643</author><pubDate>Fri, 13 Sep 2024 23:06:17 +0800</pubDate><description><![CDATA[【代码】Java8函数式接口全攻略。]]></description><category></category></item><item><title><![CDATA[【白话树】之 树的基本知识、存储结构和二叉树转换]]></title><link>https://blog.youkuaiyun.com/qq_22129643/article/details/142205409</link><guid>https://blog.youkuaiyun.com/qq_22129643/article/details/142205409</guid><author>qq_22129643</author><pubDate>Fri, 13 Sep 2024 17:00:00 +0800</pubDate><description><![CDATA[快速了解树]]></description><category></category></item><item><title><![CDATA[【白话Redis】缓存雪崩、穿透、击穿、失效和热点缓存重建]]></title><link>https://blog.youkuaiyun.com/qq_22129643/article/details/142150193</link><guid>https://blog.youkuaiyun.com/qq_22129643/article/details/142150193</guid><author>qq_22129643</author><pubDate>Wed, 11 Sep 2024 22:24:02 +0800</pubDate><description><![CDATA[由缓存机器故障宕机，导致大量请求全部落到数据库，超出了数据库的处理能力极限，进而导致数据库压力增大、宕机的情况。大批量请求缓存和数据库中都不存在的数据，导致数据库压力变大，甚至宕机。某个热点key访问非常频繁，且请求时间比较集中，是高并发场景。当这个key失效的瞬间，大量的请求直接落到数据库，导致数据库压力骤增，甚至宕机。]]></description><category></category></item><item><title><![CDATA[【白话Spring】三级缓存]]></title><link>https://blog.youkuaiyun.com/qq_22129643/article/details/142137210</link><guid>https://blog.youkuaiyun.com/qq_22129643/article/details/142137210</guid><author>qq_22129643</author><pubDate>Wed, 11 Sep 2024 22:23:29 +0800</pubDate><description><![CDATA[容器只是个工具，怎么用才是我们需要了解的关键，什么时候给容器里存入Bean，把Bean存入哪个容器，什么时候清空容器，这就不得不了解一下Spring中Bean的生命周期了。设想一下没有三级缓存的循环依赖问题：ServiceA依赖ServiceB，ServiceB依赖ServiceA。每次获取到的都是新的代理对象，就破坏了Spring解决循环依赖问题的基础，即所有的对象都是单例的。解决循环依赖的问题有两级缓存就够了，为什么要用三级缓存呢？从上面的代码中可以看出，三级缓存就是3个全局的Map。]]></description><category></category></item><item><title><![CDATA[【白话MQ】消息队列MQ的使用和选型]]></title><link>https://blog.youkuaiyun.com/qq_22129643/article/details/142093221</link><guid>https://blog.youkuaiyun.com/qq_22129643/article/details/142093221</guid><author>qq_22129643</author><pubDate>Tue, 10 Sep 2024 12:31:59 +0800</pubDate><description><![CDATA[而使用MQ作为一个消息的缓冲区，系统A把所有对其他系统的同步通知消息都交给MQ，然后再由需要消息的其他B、C、E系统消费消息，可以有效的降低系统之间的耦合度。（为什么耗时差距这么大？使用MQ之后，无非是多了一个外部依赖，影响微乎其微，但是当MQ挂掉之后，整个系统都将奔溃，这是我们所不能承受的。系统A对数据的修改，实时同步更新到B、C、D系统中，且在同步过程中，系统A在当前线程中不能做任何其他的操作。在架构设计时，我们假定的情况就是MQ是可用的，交给MQ的消息都以符合我们心意的方式来为其他系统提供服务。]]></description><category></category></item><item><title><![CDATA[【较真儿】事务特性及场景演化：]]></title><link>https://blog.youkuaiyun.com/qq_22129643/article/details/141497521</link><guid>https://blog.youkuaiyun.com/qq_22129643/article/details/141497521</guid><author>qq_22129643</author><pubDate>Tue, 10 Sep 2024 12:30:50 +0800</pubDate><description><![CDATA[答：事务源自于数据库管理系统（DBMS），是执行过程里一个由一系列操作组成的一个不可分割的工作序列。]]></description><category></category></item><item><title><![CDATA[【分布式系统】之 分布式事务解决方案 Seata]]></title><link>https://blog.youkuaiyun.com/qq_22129643/article/details/140953643</link><guid>https://blog.youkuaiyun.com/qq_22129643/article/details/140953643</guid><author>qq_22129643</author><pubDate>Mon, 19 Aug 2024 09:56:11 +0800</pubDate><description><![CDATA[分布式事务，分开来讲就是分布式和事务。分布式：是一种抽象规范，即分别部署在不同的服务器节点的模式不同功能的模块的分开部署相同功能的模块基于高性能高并发高可用的集群部署事务：是一组原子性的执行过程，该过程要么全部执行成功，要么全部执行失败，不存在中间状态。]]></description><category></category></item><item><title><![CDATA[【Spring】BeanFactory和FactoryBean]]></title><link>https://blog.youkuaiyun.com/qq_22129643/article/details/141303347</link><guid>https://blog.youkuaiyun.com/qq_22129643/article/details/141303347</guid><author>qq_22129643</author><pubDate>Mon, 19 Aug 2024 09:54:36 +0800</pubDate><description><![CDATA[BeanFactory：是Spring框架最核心的Bean的创建及管理容器FactoryBean：是一种特殊的Bean，可以实现一些复杂的Bean的创建。]]></description><category></category></item><item><title><![CDATA[【源码分析】之 ThreadPoolExecutor详解]]></title><link>https://blog.youkuaiyun.com/qq_22129643/article/details/140888394</link><guid>https://blog.youkuaiyun.com/qq_22129643/article/details/140888394</guid><author>qq_22129643</author><pubDate>Sat, 03 Aug 2024 13:31:01 +0800</pubDate><description><![CDATA[使用小队列通常需要较大的池大小，这会使CPU更忙，但可能会遇到不可接受的调度开销，这也会降低吞吐量。例如，在网页服务器中。在这里，如果没有线程立即可用来运行任务，则尝试排队任务将失败，因此将构造一个新线程。如果工作线程或使用池的其他线程没有此权限，服务可能会降低：配置更改可能无法及时生效，关闭的池可能保持在可能终止但未完成的状态。，也能回收未引用的池，那么您必须通过设置适当的保持活动时间，使用零核心线程的下界和/或设置。如果线程池在程序中不再被引用，并且没有剩余的线程，那么线程池将被自动关闭。]]></description><category></category></item><item><title><![CDATA[【源码分析】之 线程池工具类 Executors详解]]></title><link>https://blog.youkuaiyun.com/qq_22129643/article/details/140886203</link><guid>https://blog.youkuaiyun.com/qq_22129643/article/details/140886203</guid><author>qq_22129643</author><pubDate>Sat, 03 Aug 2024 11:55:43 +0800</pubDate><description><![CDATA[该类为Executor和Callable类定义了工厂和工具方法。通过对以上源码的分析，可以发现虽然Executors工具类提供了很多快速创建线程池的方法，但归根结底还是对ThreadPoolExecutor、ScheduledThreadPoolExecutor的封装。我们可以很容易的根据自己的项目情况去自定义，这样的创建的线程池才是最符合业务场景的。在Executors提供的快速创建线程池的方法中，若有贴合使用业务场景的，可以直接使用，这样可以提高开发效率，避免重复造轮子。]]></description><category></category></item><item><title><![CDATA[HashMap 和 HashTable 的区别？]]></title><link>https://blog.youkuaiyun.com/qq_22129643/article/details/140726481</link><guid>https://blog.youkuaiyun.com/qq_22129643/article/details/140726481</guid><author>qq_22129643</author><pubDate>Fri, 26 Jul 2024 23:22:32 +0800</pubDate><description><![CDATA[【代码】HashMap 和 HashTable 的区别？]]></description><category></category></item><item><title><![CDATA[Java 代理模式详解]]></title><link>https://blog.youkuaiyun.com/qq_22129643/article/details/140507934</link><guid>https://blog.youkuaiyun.com/qq_22129643/article/details/140507934</guid><author>qq_22129643</author><pubDate>Wed, 17 Jul 2024 23:27:01 +0800</pubDate><description><![CDATA[Java 代理模式 看这一篇就够了]]></description><category></category></item><item><title><![CDATA[从【时间复杂度】到【函数的渐进上界】]]></title><link>https://blog.youkuaiyun.com/qq_22129643/article/details/140495186</link><guid>https://blog.youkuaiyun.com/qq_22129643/article/details/140495186</guid><author>qq_22129643</author><pubDate>Wed, 17 Jul 2024 15:48:16 +0800</pubDate><description><![CDATA[从时间复杂度更深入一点]]></description><category></category></item><item><title><![CDATA[【Hello 算法】算法是什么？]]></title><link>https://blog.youkuaiyun.com/qq_22129643/article/details/140478802</link><guid>https://blog.youkuaiyun.com/qq_22129643/article/details/140478802</guid><author>qq_22129643</author><pubDate>Tue, 16 Jul 2024 22:37:49 +0800</pubDate><description><![CDATA[了解一下算法和数据结构]]></description><category></category></item><item><title><![CDATA[Java SPI 机制详解]]></title><link>https://blog.youkuaiyun.com/qq_22129643/article/details/140471829</link><guid>https://blog.youkuaiyun.com/qq_22129643/article/details/140471829</guid><author>qq_22129643</author><pubDate>Tue, 16 Jul 2024 17:20:45 +0800</pubDate><description><![CDATA[文件夹下的 services 文件夹下的文件，将这个文件夹下面的所有文件先加载到内存中，然后根据这些文件的文件名和里面的文件内容找到相应接口的具体实现类，找到实现类后就可以通过反射去生成对应的对象，保存在一个 list 列表里面，所以可以通过迭代或者遍历的方式拿到对应的实例对象，生成不同的实现。所以会提出一些规范要求：文件名一定要是接口的全类名，然后里面的内容一定要是实现类的全类名，实现类可以有多个，直接换行就好了，多个实现类的时候，会一个一个的迭代加载。修改或者替换服务实现并不需要修改调用方。]]></description><category></category></item><item><title><![CDATA[【扫盲】并查集2]]></title><link>https://blog.youkuaiyun.com/qq_22129643/article/details/140450819</link><guid>https://blog.youkuaiyun.com/qq_22129643/article/details/140450819</guid><author>qq_22129643</author><pubDate>Mon, 15 Jul 2024 22:27:14 +0800</pubDate><description><![CDATA[在树中进行合并操作时，总是将秩（树的高度）较小的树连接到秩较大的树的根上，这样可以保证树的深度尽可能小，从而提高查询效率。同时，它也支持高度平衡的合并策略，即合并两个高度相同的子树时，将较低的子树连接到较高的子树上，并可能增加较高子树的高度。操作中通过递归查找时将路径上的每个节点直接连接到根节点，以减少查找时间。除了使用路径压缩这种优化措施，还可以使用。这个实现支持路径压缩，即在。]]></description><category></category></item><item><title><![CDATA[【扫盲】并查集]]></title><link>https://blog.youkuaiyun.com/qq_22129643/article/details/140450200</link><guid>https://blog.youkuaiyun.com/qq_22129643/article/details/140450200</guid><author>qq_22129643</author><pubDate>Mon, 15 Jul 2024 22:05:18 +0800</pubDate><description><![CDATA[从LeeCode真题到并查集概念初体验]]></description><category></category></item><item><title><![CDATA[MySQL InnoDB【事务模型】之【事务隔离级别】 全攻略]]></title><link>https://blog.youkuaiyun.com/qq_22129643/article/details/140423660</link><guid>https://blog.youkuaiyun.com/qq_22129643/article/details/140423660</guid><author>qq_22129643</author><pubDate>Sun, 14 Jul 2024 22:02:42 +0800</pubDate><description><![CDATA[快速了解MySQL InnoDB引擎 事务模型之事务隔离级别]]></description><category></category></item><item><title><![CDATA[MySQL InnoDB锁 全攻略]]></title><link>https://blog.youkuaiyun.com/qq_22129643/article/details/140417913</link><guid>https://blog.youkuaiyun.com/qq_22129643/article/details/140417913</guid><author>qq_22129643</author><pubDate>Sun, 14 Jul 2024 15:59:44 +0800</pubDate><description><![CDATA[快速通关 MySQL InnoDB引擎提供的各种锁机制]]></description><category></category></item></channel></rss>