<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[兴趣是最好的老师]]></title><description><![CDATA[http://www.cnblogs.com/ZHOUVIP/]]></description><link>https://blog.csdn.net/ZHOU_VIP</link><language>zh-cn</language><generator>https://blog.csdn.net/</generator><copyright><![CDATA[Copyright &copy; ZHOU_VIP]]></copyright><item><title><![CDATA[MAC-Java8-map转list]]></title><link>https://blog.csdn.net/ZHOU_VIP/article/details/139643673</link><guid>https://blog.csdn.net/ZHOU_VIP/article/details/139643673</guid><author>ZHOU_VIP</author><pubDate>Mon, 19 Oct 2026 20:01:50 +0800</pubDate><description><![CDATA[在Java 8中，可以使用Stream API非常方便地将Map转换为List。这里有几个常见的场景，包括将。### 3. 将Map的键值对转换为List（以某种形式，例如元组）  对于键值对的转换，Java标准库没。这里我们展示如何将键值对保持为Entry对象的。如果你想要更复杂的转换，比如将每个键值对转换为一个自定义对象，你可以使用map()操作配合。### 1. 将Map的所有键转换为List。### 2. 将Map的所有值转换为List。Map的键、值或键值对转换为List。]]></description><category></category></item><item><title><![CDATA[MAC-SpringBoot使用Fastjson处理保留null字段]]></title><link>https://blog.csdn.net/ZHOU_VIP/article/details/141350164</link><guid>https://blog.csdn.net/ZHOU_VIP/article/details/141350164</guid><author>ZHOU_VIP</author><pubDate>Wed, 09 Sep 2026 19:23:37 +0800</pubDate><description><![CDATA[SerializerFeature.WriteNullBooleanAsFalse：此配置项表示如果布尔字段为 null，则输出为 false。SerializerFeature.WriteNullStringAsEmpty：此配置项表示如果字符串字段为 null，则输出为 "" 而。SerializerFeature.WriteMapNullValue：此配置项表示在序列化时保留 map 中的 null 值。通过上述配置，你可以轻松地配置 Fastjson 以保留 null 字段。]]></description><category></category></item><item><title><![CDATA[MAC-文件后缀名过滤工具类]]></title><link>https://blog.csdn.net/ZHOU_VIP/article/details/162983478</link><guid>https://blog.csdn.net/ZHOU_VIP/article/details/162983478</guid><author>ZHOU_VIP</author><pubDate>Sat, 08 Aug 2026 21:46:03 +0800</pubDate><description><![CDATA[/ 允许的扩展名集合（可根据需求增删，建议转为小写统一匹配）/*** 检查文件名的后缀是否在允许的列表中* @param fileName 文件名（如 "test.jpg"、"report.pdf"）* @return true=允许上传；false=不允许上传*/// 空值或空字符串直接拒绝// 分割文件名和后缀（处理带/不带点的情况，如 ".jpg" 或 "jpg"）// 无后缀，拒绝// 提取后缀（转为小写，避免大小写敏感问题）// 检查后缀是否在允许的集合中。]]></description><category></category></item><item><title><![CDATA[MAC-out.write报错xss，改成hutool工具类IoUtil.copy]]></title><link>https://blog.csdn.net/ZHOU_VIP/article/details/162978966</link><guid>https://blog.csdn.net/ZHOU_VIP/article/details/162978966</guid><author>ZHOU_VIP</author><pubDate>Sat, 18 Jul 2026 00:45:23 +0800</pubDate><description><![CDATA[根据图片中的代码，可以将out.write替换为 Hutool 的方法。以下是修改后的代。]]></description><category></category></item><item><title><![CDATA[MAC-UriComponentsBuilder扩展2]]></title><link>https://blog.csdn.net/ZHOU_VIP/article/details/161838471</link><guid>https://blog.csdn.net/ZHOU_VIP/article/details/161838471</guid><author>ZHOU_VIP</author><pubDate>Tue, 09 Jun 2026 20:28:57 +0800</pubDate><description><![CDATA[路径变量顺序：确保传递的变量值与路径模板中的占位符顺序一致编码处理：始终调用.encode()来确保特殊字符被正确编码变量验证：在展开路径变量前验证其有效性可重用builder：对于同一主机的URL，可重用UriComponentsBuilder实例结合Spring MVC：在控制器中使用构建响应URI错误处理：捕获，当路径变量不匹配时会抛出此异常。]]></description><category></category></item><item><title><![CDATA[MAC-UriComponentsBuilder扩展1]]></title><link>https://blog.csdn.net/ZHOU_VIP/article/details/161838326</link><guid>https://blog.csdn.net/ZHOU_VIP/article/details/161838326</guid><author>ZHOU_VIP</author><pubDate>Tue, 09 Jun 2026 20:11:25 +0800</pubDate><description><![CDATA[/ 查询参数封装类@Data。]]></description><category></category></item><item><title><![CDATA[MAC-UriComponentsBuilder（Spring框架中用于安全构建URI的工具类）]]></title><link>https://blog.csdn.net/ZHOU_VIP/article/details/161426951</link><guid>https://blog.csdn.net/ZHOU_VIP/article/details/161426951</guid><author>ZHOU_VIP</author><pubDate>Tue, 26 May 2026 17:06:54 +0800</pubDate><description><![CDATA[自动编码：它会自动对参数值中的特殊字符（如空格、中文、等）进行 URL 编码，防止 URL 断裂或产生歧义。类型安全：避免了手动使用字符串拼接 () 或时容易出现的空格多一个少一个、漏写号等低级错误。链式调用：支持流畅的链式编程风格，代码可读性更高。]]></description><category></category></item><item><title><![CDATA[MAC-泛形+函数式接口]]></title><link>https://blog.csdn.net/ZHOU_VIP/article/details/155789620</link><guid>https://blog.csdn.net/ZHOU_VIP/article/details/155789620</guid><author>ZHOU_VIP</author><pubDate>Tue, 14 Apr 2026 10:48:20 +0800</pubDate><description><![CDATA[【代码】MAC-泛形+函数式接口。]]></description><category></category></item><item><title><![CDATA[MAC-分页查询全局去重，使用GROUP BY+子查询 、 ROW_NUMBER()或DISTINCT ON]]></title><link>https://blog.csdn.net/ZHOU_VIP/article/details/158847248</link><guid>https://blog.csdn.net/ZHOU_VIP/article/details/158847248</guid><author>ZHOU_VIP</author><pubDate>Mon, 09 Mar 2026 17:26:13 +0800</pubDate><description><![CDATA[特性GROUP BY标准SQL​是是（但窗口函数）PostgreSQL特有​语法简洁性​复杂（需要子查询）中等最简洁​灵活性​低（只能获取聚合值）高（可灵活排序）中等性能​中等（需要多次扫描）好（一次扫描）好（一次扫描）获取完整记录​需要JOIN直接获取直接获取多字段去重​支持支持支持排序控制​有限完全控制​有限（ORDER BY必须包含去重字段）适用场景​简单聚合统计复杂去重逻辑PostgreSQL环境下的简单去重。]]></description><category></category></item><item><title><![CDATA[MAC-分页查询全局去重的原理详解]]></title><link>https://blog.csdn.net/ZHOU_VIP/article/details/158845515</link><guid>https://blog.csdn.net/ZHOU_VIP/article/details/158845515</guid><author>ZHOU_VIP</author><pubDate>Mon, 09 Mar 2026 16:36:12 +0800</pubDate><description><![CDATA[让我用一个生活中的比喻来解释这个技术原理，这样你会更容易理解。]]></description><category></category></item><item><title><![CDATA[SQL-窗口函数ROW_NUMBER()]]></title><link>https://blog.csdn.net/ZHOU_VIP/article/details/158583375</link><guid>https://blog.csdn.net/ZHOU_VIP/article/details/158583375</guid><author>ZHOU_VIP</author><pubDate>Tue, 03 Mar 2026 15:12:37 +0800</pubDate><description><![CDATA[例如：筛选 “分数前 3 名的学生”，若有两个第 3 名，row_number()会只保留 1 个，而rank()或dense_rank()能保留两个并列第 3 名，符合 “前 3 名” 的实际需求。当需要按某字段分组，保留每组内 “最新 / 最优 / 指定条件” 的唯一记录时，row_number()是首选 —— 其 “唯一序号” 特性可精准定位目标记录。适用场景：学校成绩单、赛事排名榜、绩效考核等级分配（如 “前 10% 为 A 级，10%-30% 为 B 级”，需按实际排名比例划分）。]]></description><category></category></item><item><title><![CDATA[MAC-Java开发中那些“坑你没商量”的细节（实战案例详解）]]></title><link>https://blog.csdn.net/ZHOU_VIP/article/details/157799927</link><guid>https://blog.csdn.net/ZHOU_VIP/article/details/157799927</guid><author>ZHOU_VIP</author><pubDate>Fri, 06 Feb 2026 10:35:09 +0800</pubDate><description><![CDATA[字符串字面量会进入常量池。]]></description><category></category></item><item><title><![CDATA[Java-前端传参到不了后端问题，@Data生成sTimeS是req.getSTimeS()，但是如果手动生成就是req.getsTimeS()]]></title><link>https://blog.csdn.net/ZHOU_VIP/article/details/156992771</link><guid>https://blog.csdn.net/ZHOU_VIP/article/details/156992771</guid><author>ZHOU_VIP</author><pubDate>Thu, 15 Jan 2026 20:23:23 +0800</pubDate><description><![CDATA[（即首字母大写，但注意属性名第一个字母是's'，第二个字母'T'，所以Lombok会将整个属性名首字母大写，变成“STimeS”）第二个字母'T'，但注意属性名是“sTimeS”，所以第二个字母是'T'，是大写）。但是，对于“sTimeS”这个属性，第一个字母's'小写，第二个字母'T'大写，属于“前两个字母不都大。根据规范，如果属性名的前两个字母都是大写，则getter/setter中属性名保持不变。实际上，规范中规定，如果属性名的第一个字母小写，第二个字母大写，那么getter/setter方。]]></description><category></category></item><item><title><![CDATA[Windows-休眠按钮看不见，怎么启用休眠]]></title><link>https://blog.csdn.net/ZHOU_VIP/article/details/152133735</link><guid>https://blog.csdn.net/ZHOU_VIP/article/details/152133735</guid><author>ZHOU_VIP</author><pubDate>Tue, 02 Dec 2025 10:59:29 +0800</pubDate><description><![CDATA[在开始菜单搜索“cmd”或“PowerShell”，右键点击它，选择 ​。执行此命令后，系统会创建休眠文件，并在关机选项中显示“休眠”选项。这个方法也非常快捷，尤其适合喜欢键盘操作的用户。会弹出一个高级用户菜单。]]></description><category></category></item><item><title><![CDATA[Java应用中，CPU 使用率过高​问题排查（手动用top+jstack或阿里Arthas）]]></title><link>https://blog.csdn.net/ZHOU_VIP/article/details/154704099</link><guid>https://blog.csdn.net/ZHOU_VIP/article/details/154704099</guid><author>ZHOU_VIP</author><pubDate>Wed, 12 Nov 2025 15:05:29 +0800</pubDate><description><![CDATA[1. 发现 CPU 过高↓2. 找到是哪个 Java 进程（top / 任务管理器）↓3. 找出进程中哪个线程 CPU 高（top -Hp <pid>）↓4. 将线程 TID 转为十六进制（printf "%x" <tid>）↓5. 导出线程堆栈（jstack <pid> > thread_dump.txt）↓6. 在堆栈中查找对应 nid 的线程，分析其调用栈↓7. 定位到问题代码（某个方法/循环/计算）↓8. 优化代码 / 算法 / 线程模型 / 配置等。]]></description><category></category></item><item><title><![CDATA[Java面试题-两个对象相等equals相等吗，equals相等对象相等吗]]></title><link>https://blog.csdn.net/ZHOU_VIP/article/details/153745571</link><guid>https://blog.csdn.net/ZHOU_VIP/article/details/153745571</guid><author>ZHOU_VIP</author><pubDate>Wed, 22 Oct 2025 20:33:27 +0800</pubDate><description><![CDATA[这是一个非常经典的Java面试题，它核心考察的是你对对象相等性判断的深入理解。简单来说，这两个说法并不总是成立，关键在于如何定义“相等”。下面这个表格清晰地展示了它们的关系：情形两个对象相等 (内存地址相同)equals方法返回true说明​equals​✅ 意味着equals为true❌ ​​ 对象相等此时equals等价于==，比较内存地址。​equals​❌ ​​equals为true✅ 意味着 被​​认为是相等的此时equals比较的是对象内容（如字段值）。]]></description><category></category></item><item><title><![CDATA[MAC-Java集合求差集，如果B集合中的id在A集合中存在就移除，如果不在就返回A集合]]></title><link>https://blog.csdn.net/ZHOU_VIP/article/details/153745245</link><guid>https://blog.csdn.net/ZHOU_VIP/article/details/153745245</guid><author>ZHOU_VIP</author><pubDate>Wed, 22 Oct 2025 20:22:54 +0800</pubDate><description><![CDATA[​——正是集合运算中的​​操作。简单来说，就是求 ​​ 的结果，即找出所有属于集合A但不属于集合B的元素。]]></description><category></category></item><item><title><![CDATA[MAC-Spring框架TaskScheduler接口延时和定时任务]]></title><link>https://blog.csdn.net/ZHOU_VIP/article/details/152945091</link><guid>https://blog.csdn.net/ZHOU_VIP/article/details/152945091</guid><author>ZHOU_VIP</author><pubDate>Sat, 11 Oct 2025 10:12:03 +0800</pubDate><description><![CDATA[在Spring框架中，接口提供了一种非常方便的方式来安排延时和定时任务。如何使用它来创建延时任务。]]></description><category></category></item><item><title><![CDATA[MAC-基于反射的枚举工具类优化]]></title><link>https://blog.csdn.net/ZHOU_VIP/article/details/151794246</link><guid>https://blog.csdn.net/ZHOU_VIP/article/details/151794246</guid><author>ZHOU_VIP</author><pubDate>Sat, 20 Sep 2025 13:55:31 +0800</pubDate><description><![CDATA[​​。]]></description><category></category></item><item><title><![CDATA[MAC-枚举反射工具类]]></title><link>https://blog.csdn.net/ZHOU_VIP/article/details/151792985</link><guid>https://blog.csdn.net/ZHOU_VIP/article/details/151792985</guid><author>ZHOU_VIP</author><pubDate>Wed, 17 Sep 2025 13:58:31 +0800</pubDate><description><![CDATA[/ 简单枚举类ACTIVE("A", "活跃用户", true),INACTIVE("I", "未激活用户", false),SUSPENDED("S", "已停用", false);// 另一个枚举类RED(1, "红色"),GREEN(2, "绿色"),BLUE(3, "蓝色");return id;]]></description><category></category></item></channel></rss>