<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[qq_45890831的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/qq_45890831</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; qq_45890831]]></copyright><item><title><![CDATA[redis八股个人总结]]></title><link>https://blog.youkuaiyun.com/qq_45890831/article/details/143696316</link><guid>https://blog.youkuaiyun.com/qq_45890831/article/details/143696316</guid><author>qq_45890831</author><pubDate>Mon, 03 Mar 2025 09:43:24 +0800</pubDate><description><![CDATA[缓存雪崩是指在某个时间点，大量缓存数据同时过期，导致大量请求直接打到数据库上，造成数据库压力骤增，可能引发系统崩溃。缓存穿透是指请求的数据在缓存和数据库中都不存在，这样每次请求都会直接查询数据库，导致对数据库的压力增大。(1) Redis有什么优缺点？Redis是一个基于内存的数据库，读写速度非常快，通常被用作缓存、消息队列、分布式锁和键值存储数据库。它支持多种数据结构，如字符串、哈希表、列表、集合、有序集合等， Redis 还提供了分布式特性，可以将数据分布在多个节点上，以提高可扩展性和可用性。但是。]]></description><category></category></item><item><title><![CDATA[黑马点评项目测试总结]]></title><link>https://blog.youkuaiyun.com/qq_45890831/article/details/144333376</link><guid>https://blog.youkuaiyun.com/qq_45890831/article/details/144333376</guid><author>qq_45890831</author><pubDate>Sun, 08 Dec 2024 22:13:03 +0800</pubDate><description><![CDATA[4. 设置请求Body： 对于POST请求或者其他需要传递Body的请求，可以在Postman中设置请求的Body。在添加 HTTP 请求时，我们需要填写请求的 URL 和请求参数。在弹出的窗口中，选择请求的类型（GET、POST等），填入请求的URL，选择请求的Header、Body等信息。6. 查看响应： 在发送请求后，可以查看Postman显示的响应信息，包括响应的状态码、响应体等。HTTP 请求是一个发送 HTTP 请求的元素，它可以模拟客户端向服务器发送请求的过程。]]></description><category></category></item><item><title><![CDATA[45期代码随想录算法营总结]]></title><link>https://blog.youkuaiyun.com/qq_45890831/article/details/143697307</link><guid>https://blog.youkuaiyun.com/qq_45890831/article/details/143697307</guid><author>qq_45890831</author><pubDate>Mon, 11 Nov 2024 22:41:28 +0800</pubDate><description><![CDATA[在为期60天的代码随想录训练营结束后，我感慨良多。这段时间不仅让我在编程技能上有了明显的提升，更让我在学习习惯和时间管理上有了深刻的反思和改变。报名参加这个训练营对我来说是一个重要的监督机制。之前我总是拖延，导致上一个学期只学完了Java SE，而这次我认识到，只有在一个有计划的环境中学习，才能更高效地提升自己。通过参加训练营，我感受到了一种紧迫感和责任感。在训练营中，我初次接触了很多算法题，虽然一刷时思路能够理解，但在代码实现上仍显得不够熟练。]]></description><category></category></item><item><title><![CDATA[Mysql个人八股总结]]></title><link>https://blog.youkuaiyun.com/qq_45890831/article/details/143595351</link><guid>https://blog.youkuaiyun.com/qq_45890831/article/details/143595351</guid><author>qq_45890831</author><pubDate>Mon, 11 Nov 2024 21:39:37 +0800</pubDate><description><![CDATA[高效的查询性能：通过较低的树高度和顺序访问，加快数据检索速度。减少磁盘I/O：通过高效的节点结构和缓存利用，降低数据访问成本。支持范围查询：顺序链接的叶子节点使得范围查询变得非常高效。良好的事务处理能力：适合高并发环境，确保数据一致性。Undo Log用于记录事务执行过程中所做的修改，以便在事务发生错误或中止时，可以将数据库状态恢复到修改之前的状态。它主要用于支持事务的原子性和一致性，确保如果事务不能成功完成，所有的修改都会被撤回。Redo Log。]]></description><category></category></item><item><title><![CDATA[苍穹外卖业务整理]]></title><link>https://blog.youkuaiyun.com/qq_45890831/article/details/143691319</link><guid>https://blog.youkuaiyun.com/qq_45890831/article/details/143691319</guid><author>qq_45890831</author><pubDate>Mon, 11 Nov 2024 21:25:52 +0800</pubDate><description><![CDATA[苍穹外卖项目总结_苍芎外卖如何实现的跨域-优快云博客。]]></description><category></category></item><item><title><![CDATA[苍穹外卖架构分析]]></title><link>https://blog.youkuaiyun.com/qq_45890831/article/details/143608433</link><guid>https://blog.youkuaiyun.com/qq_45890831/article/details/143608433</guid><author>qq_45890831</author><pubDate>Thu, 07 Nov 2024 21:42:52 +0800</pubDate><description><![CDATA[模块主要定义数据传输对象（DTO）、实体类（Entity）和视图对象（VO），用于数据的管理和传输。: 视图对象，通常用于表示前端所需的数据格式，可以聚合多个 DTO 或实体的数据。: 控制层，接收和处理 HTTP 请求，调用服务层的业务逻辑，并返回响应。: 拦截器，处理请求的预处理和后处理，通常用于权限验证和日志记录。: 自定义注解的定义，用于实现特定功能（如日志记录、权限验证）。: 工具类，提供常用的静态方法，例如字符串处理、日期处理等。: 服务层，处理业务逻辑，调用数据访问层，与数据库交互。]]></description><category></category></item><item><title><![CDATA[操作系统个人八股文总结]]></title><link>https://blog.youkuaiyun.com/qq_45890831/article/details/143436901</link><guid>https://blog.youkuaiyun.com/qq_45890831/article/details/143436901</guid><author>qq_45890831</author><pubDate>Thu, 07 Nov 2024 15:16:52 +0800</pubDate><description><![CDATA[并发（Concurrency）并发是指多个任务在同一时间段内被处理，虽然它们可能不是同时执行的。并发强调的是任务的结构，允许多个任务在逻辑上交替进行，比如在多核或单核CPU上通过时间片轮转来共享CPU时间。并行（Parallelism）并行是指多个任务在同一时间点上同时执行。并行通常需要多个处理单元（如多核CPU）来支持任务的同时运行。并行强调的是任务的执行效率。用户态（User Mode）用户态是指程序在运行时的基本状态，通常是指用户应用程序的执行环境。]]></description><category></category></item><item><title><![CDATA[计算机网络八股文个人总结]]></title><link>https://blog.youkuaiyun.com/qq_45890831/article/details/143195696</link><guid>https://blog.youkuaiyun.com/qq_45890831/article/details/143195696</guid><author>qq_45890831</author><pubDate>Fri, 01 Nov 2024 17:26:20 +0800</pubDate><description><![CDATA[特点GET 请求POST 请求主要用途获取数据提交数据数据传输方式URL 查询字符串请求体安全性不适合敏感信息相对安全，但仍需注意幂等性是幂等的非幂等的是否缓存可以缓存通常不缓存在 Web 开发中，缓存是提高性能和用户体验的重要技术。强缓存和协商缓存。下面我们来详细解释这两种缓存及其工作原理。特性HTTP/1.0HTTP/1.1连接管理每个请求新建连接持久连接，复用 TCP 连接带宽优化简单增强，支持分块传输缓存处理。]]></description><category></category></item><item><title><![CDATA[代码随想录day42：单调栈part2]]></title><link>https://blog.youkuaiyun.com/qq_45890831/article/details/143065212</link><guid>https://blog.youkuaiyun.com/qq_45890831/article/details/143065212</guid><author>qq_45890831</author><pubDate>Sat, 19 Oct 2024 02:39:25 +0800</pubDate><description><![CDATA[这两个题一个代码格式，接雨水是找遍历位置两边比他大的，最大面积是找两边比他小的。]]></description><category></category></item><item><title><![CDATA[代码随想录day41：单调栈part1]]></title><link>https://blog.youkuaiyun.com/qq_45890831/article/details/143031935</link><guid>https://blog.youkuaiyun.com/qq_45890831/article/details/143031935</guid><author>qq_45890831</author><pubDate>Fri, 18 Oct 2024 11:29:59 +0800</pubDate><description><![CDATA[【代码】代码随想录day41：part13。]]></description><category></category></item><item><title><![CDATA[一道排序题]]></title><link>https://blog.youkuaiyun.com/qq_45890831/article/details/143040865</link><guid>https://blog.youkuaiyun.com/qq_45890831/article/details/143040865</guid><author>qq_45890831</author><pubDate>Fri, 18 Oct 2024 11:13:48 +0800</pubDate><description><![CDATA[给你一组数据，国家中文名称，英文名，金牌银牌铜牌，让你写出奖牌榜的输出，规则是先根据总奖牌数，然后金银铜，最后根据国家英文名从a-z降序排列。]]></description><category></category></item><item><title><![CDATA[代码随想录day40：动态规划part13]]></title><link>https://blog.youkuaiyun.com/qq_45890831/article/details/142995101</link><guid>https://blog.youkuaiyun.com/qq_45890831/article/details/142995101</guid><author>qq_45890831</author><pubDate>Thu, 17 Oct 2024 01:53:18 +0800</pubDate><description><![CDATA[【代码】代码随想录day40：动态规划part13。]]></description><category></category></item><item><title><![CDATA[代码随想录day39：动态规划part12]]></title><link>https://blog.youkuaiyun.com/qq_45890831/article/details/142967607</link><guid>https://blog.youkuaiyun.com/qq_45890831/article/details/142967607</guid><author>qq_45890831</author><pubDate>Wed, 16 Oct 2024 01:44:03 +0800</pubDate><description><![CDATA[见代码随想录，总结的好，重点理解dp数组在干什么。]]></description><category></category></item><item><title><![CDATA[代码随想录day38：动态规划part11]]></title><link>https://blog.youkuaiyun.com/qq_45890831/article/details/142932487</link><guid>https://blog.youkuaiyun.com/qq_45890831/article/details/142932487</guid><author>qq_45890831</author><pubDate>Tue, 15 Oct 2024 02:18:31 +0800</pubDate><description><![CDATA[如果text1[i - 1] 与 text2[j - 1]不相同，那就看看text1[0, i - 2]与text2[0, j - 1]的最长公共子序列 和 text1[0, i - 1]与text2[0, j - 2]的最长公共子序列，取最大的。如果text1[i - 1] 与 text2[j - 1]相同，那么找到了一个公共元素，所以dp[i][j] = dp[i - 1][j - 1] + 1;即：dp[i][j] = max(dp[i - 1][j], dp[i][j - 1]);]]></description><category></category></item><item><title><![CDATA[代码随想录day37：动态规划part10]]></title><link>https://blog.youkuaiyun.com/qq_45890831/article/details/142929474</link><guid>https://blog.youkuaiyun.com/qq_45890831/article/details/142929474</guid><author>qq_45890831</author><pubDate>Tue, 15 Oct 2024 01:24:33 +0800</pubDate><description><![CDATA[为什么一定表示 “以nums[i]结尾的最长递增子序” ，因为我们在 做 递增比较的时候，如果比较 nums[j] 和 nums[i] 的大小，那么两个递增子序列一定分别以nums[j]为结尾 和 nums[i]为结尾， 要不然这个比较就没有意义了，不是尾部元素的比较那么 如何算递增呢。所以：if (nums[i] > nums[j]) dp[i] = max(dp[i], dp[j] + 1);位置i的最长升序子序列等于j从0到i-1各个位置的最长升序子序列 + 1 的最大值。清晰的展示了二维数组方法。]]></description><category></category></item><item><title><![CDATA[代码随想录day35，36：动态规划part8，part9]]></title><link>https://blog.youkuaiyun.com/qq_45890831/article/details/142866817</link><guid>https://blog.youkuaiyun.com/qq_45890831/article/details/142866817</guid><author>qq_45890831</author><pubDate>Mon, 14 Oct 2024 17:09:17 +0800</pubDate><description><![CDATA[看yyj题解就够了真股神，真股神题解。]]></description><category></category></item><item><title><![CDATA[代码随想录day34：动态规划part7]]></title><link>https://blog.youkuaiyun.com/qq_45890831/article/details/142912831</link><guid>https://blog.youkuaiyun.com/qq_45890831/article/details/142912831</guid><author>qq_45890831</author><pubDate>Mon, 14 Oct 2024 11:06:35 +0800</pubDate><description><![CDATA[决定dp[i]的因素就是第i房间偷还是不偷。如果偷第i房间，那么dp[i] = dp[i - 2] + nums[i] ，即：第i-1房一定是不考虑的，找出 下标i-2（包括i-2）以内的房屋，最多可以偷窃的金额为dp[i-2] 加上第i房间偷到的钱。如果不偷第i房间，那么dp[i] = dp[i - 1]，即考 虑i-1房。然后dp[i]取最大值，即dp[i] = max(dp[i - 2] + nums[i], dp[i - 1]);]]></description><category></category></item><item><title><![CDATA[代码随想录day33：动态规划part6]]></title><link>https://blog.youkuaiyun.com/qq_45890831/article/details/142859637</link><guid>https://blog.youkuaiyun.com/qq_45890831/article/details/142859637</guid><author>qq_45890831</author><pubDate>Fri, 11 Oct 2024 23:16:06 +0800</pubDate><description><![CDATA[这是重点精髓，dp数组初始化。]]></description><category></category></item><item><title><![CDATA[代码随想录day32：动态规划part5]]></title><link>https://blog.youkuaiyun.com/qq_45890831/article/details/142856751</link><guid>https://blog.youkuaiyun.com/qq_45890831/article/details/142856751</guid><author>qq_45890831</author><pubDate>Fri, 11 Oct 2024 17:01:08 +0800</pubDate><description><![CDATA[就是完全背包min问题，初始化最上边一行为max = amount + 1用与比较。“在前0个数字中，凑出和为0的组合，有几种方法”，我们只能选择放弃“第0个数字”这个遍历顺序与 0-1 背包正好相反。hello算法讲解的很清楚。一维就dp[0] = 1;就行，其实一维的好写，不用考虑遍历边界。第一个做的方案问题一样，改成完全背包的形式，正序遍历。跟上一题的区别就是上一题是组合问题，这次是排列问题。由于当前状态是从左边和上边的状态转移而来的，]]></description><category></category></item><item><title><![CDATA[代码随想录day31：动态规划part4]]></title><link>https://blog.youkuaiyun.com/qq_45890831/article/details/142835987</link><guid>https://blog.youkuaiyun.com/qq_45890831/article/details/142835987</guid><author>qq_45890831</author><pubDate>Fri, 11 Oct 2024 15:40:03 +0800</pubDate><description><![CDATA[题其实就是尽量让石头分成重量相同的两堆，相撞之后剩下的石头最小，。秒啊接下来推导状态转移方程：dp[i][j]的意义是，在前i个数字中，凑出和为j的组合(可以理解成放入A堆)，有多少种方法。对于第i个数字，我们有两种选择：1.选择将第i个数字放入A堆，此时，数字还剩i - 1个，背包的容量需要减去nums[i]。递推式为2.选择放弃第i个数字，直接来到第i - 1个数字，背包的容量不变。递推式为dp[i - 1][j]；]]></description><category></category></item></channel></rss>