<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[程序员夏洛的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/m0_62020051</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; m0_62020051]]></copyright><item><title><![CDATA[TCP 是用来解决什么问题？]]></title><link>https://blog.youkuaiyun.com/m0_62020051/article/details/168249361</link><guid>https://blog.youkuaiyun.com/m0_62020051/article/details/168249361</guid><author>m0_62020051</author><pubDate>Sat, 17 Oct 2026 21:16:36 +0800</pubDate><description><![CDATA[TCP 工作在传输层，底层IP协议只提供无连接、尽力而为的报文交付，存在丢包、乱序、重复、网络拥塞、接收缓冲区溢出等问题。使用滑动窗口机制，接收方通过窗口大小告知发送方自身剩余缓冲区容量，防止发送方发送速率过快，造成接收端缓冲区溢出。将应用层的数据拆分成合适大小的TCP段，适配底层IP的MTU，向上层屏蔽底层网络分片细节。感知整个网络的拥塞状态，动态调整发送窗口，避免大量报文涌入网络，导致网络瘫痪。利用序列号识别重复收到的数据包，丢弃重复报文，避免上层应用收到重复数据。的面向连接字节流传输。]]></description><category></category></item><item><title><![CDATA[TCP 和 UDP 有什么区别？]]></title><link>https://blog.youkuaiyun.com/m0_62020051/article/details/168249352</link><guid>https://blog.youkuaiyun.com/m0_62020051/article/details/168249352</guid><author>m0_62020051</author><pubDate>Sat, 17 Oct 2026 21:14:54 +0800</pubDate><description><![CDATA[双方互相同步初始序列号，并确认双方发送、接收功能都正常。]]></description><category></category></item><item><title><![CDATA[TCP 和 UDP 有什么区别？]]></title><link>https://blog.youkuaiyun.com/m0_62020051/article/details/168249345</link><guid>https://blog.youkuaiyun.com/m0_62020051/article/details/168249345</guid><author>m0_62020051</author><pubDate>Sat, 17 Oct 2026 21:14:16 +0800</pubDate><description><![CDATA[TCP 牺牲延迟换取可靠；UDP 牺牲可靠性换取更低延迟和更小开销。要不要继续下一题？]]></description><category></category></item><item><title><![CDATA[VMware Workstation Pro 卸载失败：安装向导提前结束、错误 1603 的排查与解决]]></title><link>https://blog.youkuaiyun.com/m0_62020051/article/details/168249070</link><guid>https://blog.youkuaiyun.com/m0_62020051/article/details/168249070</guid><author>m0_62020051</author><pubDate>Sat, 17 Oct 2026 20:54:32 +0800</pubDate><description><![CDATA[环境：Windows 11、VMware Workstation Pro 17.6.4。本文记录一次真实卸载故障：通过日志定位到虚拟网络注册表权限异常，修复后成功卸载。适用范围：卸载日志停在，且 VMware 日志出现权限异常。其他原因引起的 1603，需要另行排查。]]></description><category></category></item><item><title><![CDATA[堆和栈有什么区别]]></title><link>https://blog.youkuaiyun.com/m0_62020051/article/details/166124678</link><guid>https://blog.youkuaiyun.com/m0_62020051/article/details/166124678</guid><author>m0_62020051</author><pubDate>Sun, 20 Sep 2026 12:40:27 +0800</pubDate><description><![CDATA[注意：这里有两个容易混淆概念。]]></description><category></category></item><item><title><![CDATA[HTTP 和 HTTPS 有什么区别？]]></title><link>https://blog.youkuaiyun.com/m0_62020051/article/details/164360616</link><guid>https://blog.youkuaiyun.com/m0_62020051/article/details/164360616</guid><author>m0_62020051</author><pubDate>Fri, 04 Sep 2026 09:51:49 +0800</pubDate><description><![CDATA[HTTPS = HTTP + TLS/SSL，在HTTP和TCP中间增加一层TLS加密。]]></description><category></category></item><item><title><![CDATA[HTTP 2.0 和 3.0 有什么区别？]]></title><link>https://blog.youkuaiyun.com/m0_62020051/article/details/164360589</link><guid>https://blog.youkuaiyun.com/m0_62020051/article/details/164360589</guid><author>m0_62020051</author><pubDate>Fri, 04 Sep 2026 09:50:39 +0800</pubDate><description><![CDATA[HTTP/2 基于；HTTP/3 基于，这是最本质区别。]]></description><category></category></item><item><title><![CDATA[HTTP 1.0 和 2.0 有什么区别？]]></title><link>https://blog.youkuaiyun.com/m0_62020051/article/details/164360573</link><guid>https://blog.youkuaiyun.com/m0_62020051/article/details/164360573</guid><author>m0_62020051</author><pubDate>Fri, 04 Sep 2026 09:50:06 +0800</pubDate><description><![CDATA[HTTP1.0是早期版本；HTTP1.1是广泛使用版本；HTTP2.0基于二进制帧，大幅提升性能，。]]></description><category></category></item><item><title><![CDATA[HTTP 请求包含哪些内容，请求头和请求体有哪些类型？]]></title><link>https://blog.youkuaiyun.com/m0_62020051/article/details/164306170</link><guid>https://blog.youkuaiyun.com/m0_62020051/article/details/164306170</guid><author>m0_62020051</author><pubDate>Thu, 03 Sep 2026 00:17:15 +0800</pubDate><description><![CDATA[请求头是一堆键值对，描述请求的附加信息，比如Host、User‑Agent、Authorization、Cookie，最重要的是Content‑Type，用来标识请求体的数据格式。xml格式数据，现在互联网项目很少使用，老系统、第三方对接偶尔见到。请求体存放业务数据，GET一般没有请求体，POST/PUT使用。HTTP请求报文分为四部分：请求行、请求头、空行、请求体。请求行包含请求方法、访问路径、HTTP版本。键值对形式，补充请求元信息，空行用来分隔请求头和请求体。分隔请求头和请求体，固定。]]></description><category></category></item><item><title><![CDATA[常见的 HTTP 状态码有哪些？]]></title><link>https://blog.youkuaiyun.com/m0_62020051/article/details/164306156</link><guid>https://blog.youkuaiyun.com/m0_62020051/article/details/164306156</guid><author>m0_62020051</author><pubDate>Thu, 03 Sep 2026 00:16:25 +0800</pubDate><description><![CDATA[状态码分为5大类：1xx 信息｜2xx成功｜3xx重定向｜4xx客户端错误｜5xx服务端错误。]]></description><category></category></item><item><title><![CDATA[工厂模式和抽象工厂模式有什么区别？]]></title><link>https://blog.youkuaiyun.com/m0_62020051/article/details/164306143</link><guid>https://blog.youkuaiyun.com/m0_62020051/article/details/164306143</guid><author>m0_62020051</author><pubDate>Thu, 03 Sep 2026 00:14:30 +0800</pubDate><description><![CDATA[都属于，用来封装对象创建，把对象创建和业务使用解耦。]]></description><category></category></item><item><title><![CDATA[你认为好的代码应该是什么样的？]]></title><link>https://blog.youkuaiyun.com/m0_62020051/article/details/164306137</link><guid>https://blog.youkuaiyun.com/m0_62020051/article/details/164306137</guid><author>m0_62020051</author><pubDate>Thu, 03 Sep 2026 00:13:38 +0800</pubDate><description><![CDATA[可以从可读性、健壮性、性能、可维护可扩展、规范、业务语义这几个维度来讲。]]></description><category></category></item><item><title><![CDATA[谈谈你了解的最常见的几种设计模式，说说他们的应用场景]]></title><link>https://blog.youkuaiyun.com/m0_62020051/article/details/164306129</link><guid>https://blog.youkuaiyun.com/m0_62020051/article/details/164306129</guid><author>m0_62020051</author><pubDate>Thu, 03 Sep 2026 00:12:50 +0800</pubDate><description><![CDATA[我平时接触比较多的分为创建、结构、行为三类。创建型最常用单例、工厂、建造者，主要解决对象创建问题；单例保证全局唯一实例，工厂封装对象创建逻辑，建造者用于构建复杂多属性对象。结构型常用代理、适配器、装饰器；代理用于功能增强，SpringAOP就是动态代理；适配器用来兼容不同接口；装饰器动态扩展对象能力。行为型里面策略、模板方法、责任链、观察者用得最多。策略模式用来消除if‑else，动态切换算法；模板方法父类固定流程骨架，子类实现可变步骤；责任链适合一层层校验处理；观察者实现事件的发布订阅解耦。]]></description><category></category></item><item><title><![CDATA[什么是模板方法模式？一般用在什么场景？]]></title><link>https://blog.youkuaiyun.com/m0_62020051/article/details/164267840</link><guid>https://blog.youkuaiyun.com/m0_62020051/article/details/164267840</guid><author>m0_62020051</author><pubDate>Tue, 01 Sep 2026 20:30:18 +0800</pubDate><description><![CDATA[父类定大框架，子类填细节。]]></description><category></category></item><item><title><![CDATA[什么是策略模式？一般用在什么场景？]]></title><link>https://blog.youkuaiyun.com/m0_62020051/article/details/164267825</link><guid>https://blog.youkuaiyun.com/m0_62020051/article/details/164267825</guid><author>m0_62020051</author><pubDate>Tue, 01 Sep 2026 20:29:20 +0800</pubDate><description><![CDATA[策略模式属于。把抽成独立的策略类，实现同一个公共接口；上下文类持有策略对象，业务逻辑可以动态切换，。，避免大量。]]></description><category></category></item><item><title><![CDATA[单例模式有哪几种实现？如何保证线程安全？]]></title><link>https://blog.youkuaiyun.com/m0_62020051/article/details/164267806</link><guid>https://blog.youkuaiyun.com/m0_62020051/article/details/164267806</guid><author>m0_62020051</author><pubDate>Tue, 01 Sep 2026 20:27:58 +0800</pubDate><description><![CDATA[饿汉式 / 静态内部类 / 枚举：依靠JVM类加载机制保证线程安全，不需要手动加锁。懒汉同步方法：依靠方法锁，性能差。DCL双重检查锁volatile，既要锁，又要禁止指令重排。反射可以暴力调用私有构造器破坏单例；枚举天然规避这个问题。序列化/反序列化也会破坏普通单例，枚举同样天然解决。枚举静态内部类DCL双重检查锁。]]></description><category></category></item><item><title><![CDATA[Redis 中的 Big Key 问题是什么？如何解决？]]></title><link>https://blog.youkuaiyun.com/m0_62020051/article/details/164228332</link><guid>https://blog.youkuaiyun.com/m0_62020051/article/details/164228332</guid><author>m0_62020051</author><pubDate>Mon, 31 Aug 2026 19:40:03 +0800</pubDate><description><![CDATA[BigKey是value过大或集合元素过多；危害：阻塞主线程、网络IO高、主从延迟、内存碎片。排查优先离线分析，不建议高峰期执行--bigkeys。优先业务拆分大key；删除用unlink，集合用scan分批删除。集合数据分批读取，不在Redis堆积海量历史数据。注意区分大key和热点key，二者问题不一样。]]></description><category></category></item><item><title><![CDATA[Redis 集群的实现原理是什么？]]></title><link>https://blog.youkuaiyun.com/m0_62020051/article/details/164228326</link><guid>https://blog.youkuaiyun.com/m0_62020051/article/details/164228326</guid><author>m0_62020051</author><pubDate>Mon, 31 Aug 2026 19:39:29 +0800</pubDate><description><![CDATA[16384哈希槽，CRC16取模定位key。元数据同步靠Gossip协议，无中心节点。扩容缩容移动哈希槽，迁移过程有MOVED/ASK重定向。主从架构，Gossip投票完成故障转移；主从全部宕机集群down。多key命令受槽位限制，可以使用哈希标签强制落到同一个槽。客户端最好用智能客户端缓存槽映射，减少重定向开销。面试对比：Redis Cluster  vs 哨兵SentinelSentinel：不做数据分片，全量数据存一套主从，只负责高可用故障转移。]]></description><category></category></item><item><title><![CDATA[如何解决 Redis 中的热点 key 问题？]]></title><link>https://blog.youkuaiyun.com/m0_62020051/article/details/164228321</link><guid>https://blog.youkuaiyun.com/m0_62020051/article/details/164228321</guid><author>m0_62020051</author><pubDate>Mon, 31 Aug 2026 19:38:54 +0800</pubDate><description><![CDATA[热点key本质是流量集中在单个Redis节点；优先区分是读热点还是写热点。读热点优先：本地缓存 > 读写分离 > key拆分写热点优先：key拆分 + 业务层削峰批量更新配套监控提前发现热点，不要等线上故障才处理。面试加分坑：集群模式下，读写分离治标不治本，热点key的槽位固定，主从都落在同一组机器；key拆分是集群下根治热点key的方案。]]></description><category></category></item><item><title><![CDATA[Redis 数据过期后的删除策略是什么？]]></title><link>https://blog.youkuaiyun.com/m0_62020051/article/details/164191213</link><guid>https://blog.youkuaiyun.com/m0_62020051/article/details/164191213</guid><author>m0_62020051</author><pubDate>Sun, 30 Aug 2026 17:12:47 +0800</pubDate><description><![CDATA[惰性删除：访问的时候才删过期key，节省CPU，但内存可能浪费。定期删除：后台随机抽样清理过期key，不能清理全部。两者结合仍有残留，内存超限触发内存淘汰策略释放内存。线上一般设置maxmemory，搭配。]]></description><category></category></item></channel></rss>