<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[5年金融行业+3年工业领域工作经验，技术分享、互助学习]]></title><description><![CDATA[5年金融行业+3年工业领域工作经验，技术分享、互助学习]]></description><link>https://blog.youkuaiyun.com/blsc886</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; blsc886]]></copyright><item><title><![CDATA[PostgreSQL与海量数据库差异-开发视角]]></title><link>https://blog.youkuaiyun.com/blsc886/article/details/166479540</link><guid>https://blog.youkuaiyun.com/blsc886/article/details/166479540</guid><author>blsc886</author><pubDate>Wed, 23 Sep 2026 13:52:39 +0800</pubDate><description><![CDATA[所以开发写代码时，需要注意适配，特别是json序列化成bean时，需要注意处理，例如：class类中字段是用BigDecimal类型接收值，从数据库查询出来以后转为BigDecimal再set；当数据库字段类型是浮点型时，存储的值是1时，pgsql会转成1.000000000000000；当数量是1.22时，2个数据库查询都是1.22；]]></description><category></category></item><item><title><![CDATA[单例线程池]]></title><link>https://blog.youkuaiyun.com/blsc886/article/details/162878692</link><guid>https://blog.youkuaiyun.com/blsc886/article/details/162878692</guid><author>blsc886</author><pubDate>Tue, 14 Jul 2026 17:23:06 +0800</pubDate><description><![CDATA[该代码实现了一个单例线程池工具类ThreadPoolUtil，主要特点包括：1. 使用双重检查锁定实现线程安全的单例模式；2. 线程池配置动态计算核心线程数（50*CPU核数）和最大线程数；3. 支持任务队列（5000容量）和CallerRunsPolicy拒绝策略；4. 提供dispose方法处理集合任务并返回结果，以及consumer方法执行无返回值的消费操作；5. 支持通过信号量控制并发数（如样例中的40并发）；6. 使用TtlRunnable解决线程池上下文传递问题]]></description><category></category></item><item><title><![CDATA[MyBatisPlus代码自动生成器]]></title><link>https://blog.youkuaiyun.com/blsc886/article/details/162848119</link><guid>https://blog.youkuaiyun.com/blsc886/article/details/162848119</guid><author>blsc886</author><pubDate>Mon, 13 Jul 2026 19:20:49 +0800</pubDate><description><![CDATA[本文介绍了一个基于MyBatis-Plus Generator 3.5.x的代码自动生成工具类。该工具通过配置FastAutoGenerator能够自动生成Entity实体类（含Lombok注解）、Mapper接口及XML文件、Service层接口与实现类以及RESTful风格的Controller控制器。主要特性包括：使用MySQL数据库和FreeMarker模板引擎，采用下划线转驼峰的命名策略，支持文件覆盖和链式调用，输出目录指向wys-interaction模块。]]></description><category></category></item><item><title><![CDATA[Win11本地jdk1.8和jdk17双版本切换运行方法]]></title><link>https://blog.youkuaiyun.com/blsc886/article/details/151760692</link><guid>https://blog.youkuaiyun.com/blsc886/article/details/151760692</guid><author>blsc886</author><pubDate>Tue, 16 Sep 2025 17:39:12 +0800</pubDate><description><![CDATA[本文介绍了JDK17的安装与环境变量配置方法。首先从Oracle官网下载.exe安装包进行安装，或选择解压版。安装版需删除特定目录下的Java相关文件夹。环境变量配置包括：1)新建CLASSPATH变量；2)设置JAVA_HOME变量（可配置多个版本如JDK8和JDK17）。最后将JDK安装目录添加至系统Path变量，并通过cmd命令java -version验证版本切换效果。注意修改环境变量后需重新打开cmd窗口查看。]]></description><category></category></item><item><title><![CDATA[进阶——写成自动化脚本实现日志文件的定位]]></title><link>https://blog.youkuaiyun.com/blsc886/article/details/149333758</link><guid>https://blog.youkuaiyun.com/blsc886/article/details/149333758</guid><author>blsc886</author><pubDate>Mon, 14 Jul 2025 16:38:03 +0800</pubDate><description><![CDATA[摘要：本文介绍了一个名为smart_grep.sh的智能日志搜索脚本，用于高效定位和分析日志文件。该脚本采用两阶段处理：先递归查找包含所有指定关键字的文件，再过滤掉包含排除关键字的文件。支持多关键字组合查询，使用-Z和xargs-0处理特殊文件名，并自动清理临时文件。脚本可设置搜索目录、包含关键字和排除关键字，输出匹配文件列表及数量统计。典型应用场景包括在/var/log中搜索含&quot;error timeout&quot;但不含&quot;ignore skip&quot;的日志文件。]]></description><category></category></item><item><title><![CDATA[生产大批量日志场景中，根据关键字快速定位]]></title><link>https://blog.youkuaiyun.com/blsc886/article/details/149332800</link><guid>https://blog.youkuaiyun.com/blsc886/article/details/149332800</guid><author>blsc886</author><pubDate>Mon, 14 Jul 2025 16:12:37 +0800</pubDate><description><![CDATA[高效文件搜索技巧 当处理大量文件时，建议先通过grep -rl &quot;关键词&quot; /目录快速定位目标文件（仅显示文件名），再针对性深入搜索。两种细化方式： 手动选择：保存文件列表后单独分析； 自动管道：用xargs批量处理（如grep -rlZ &quot;key&quot; | xargs -0 grep -H &quot;key&quot; | grep -v &quot;排除词&quot;）。 优化建议： 限制搜索深度（--max-depth）或排除目录（--exclude-dir）； ]]></description><category></category></item><item><title><![CDATA[IDEA类和方法注释模板设置-保姆教程]]></title><link>https://blog.youkuaiyun.com/blsc886/article/details/149095326</link><guid>https://blog.youkuaiyun.com/blsc886/article/details/149095326</guid><author>blsc886</author><pubDate>Thu, 03 Jul 2025 16:20:32 +0800</pubDate><description><![CDATA[在讲解怎么设置类和方法注释模板前，先简单介绍下Javadoc标准，因为注释规范，最终和Javadoc标准契合，效果最好，不仅方便后续出接口文档描述，也是业界的统一标准，更易于接受。Javadoc 标准标签列表标签名用途说明@author指定类、接口或方法的作者@version指定类、接口的版本信息@since表示该类或方法从哪个版本开始存在一般就记录时间）@param描述方法参数的含义。]]></description><category></category></item><item><title><![CDATA[位图法（BitMap）深度解析]]></title><link>https://blog.youkuaiyun.com/blsc886/article/details/148872596</link><guid>https://blog.youkuaiyun.com/blsc886/article/details/148872596</guid><author>blsc886</author><pubDate>Tue, 24 Jun 2025 16:30:50 +0800</pubDate><description><![CDATA[位图法是一种高效的空间优化数据结构，利用比特位表示元素存在状态（0/1），适用于大规模整数去重、排序和检测。其核心是通过位运算实现快速操作，空间复杂度极低（40亿整数仅需512MB）。典型应用如40亿整数去重时，位图法在内存占用和性能上显著优于哈希表。但仅适用于有限范围内的整数，数据稀疏时效率下降。对超大非整数数据可考虑布隆过滤器（允许误报）。位图法是处理密集型整数集的理想选择，在特定场景下具有不可替代的优势。]]></description><category></category></item><item><title><![CDATA[时间复杂度和空间复杂度入门必备知识点]]></title><link>https://blog.youkuaiyun.com/blsc886/article/details/148717950</link><guid>https://blog.youkuaiyun.com/blsc886/article/details/148717950</guid><author>blsc886</author><pubDate>Tue, 17 Jun 2025 16:21:03 +0800</pubDate><description><![CDATA[算法复杂度分析摘要 时间复杂度衡量算法执行时间随数据规模n的增长趋势，空间复杂度衡量额外内存使用情况。二者都用大O表示法，忽略系数保留最高阶项。常见时间复杂度：常数O(1)、对数O(logn)、线性O(n)、线性对数O(nlogn)、平方O(n²)、指数O(2ⁿ)。计算时需找基本操作并建立T(n)表达式。空间复杂度分析额外变量和递归深度。典型案例：冒泡排序时间O(n²)空间O(1)，归并排序时间O(nlogn)空间O(n)。优化需权衡时空效率，n较小时可用简单算法，大时需高效算法。]]></description><category></category></item><item><title><![CDATA[Java实现10大经典排序算法]]></title><link>https://blog.youkuaiyun.com/blsc886/article/details/148717448</link><guid>https://blog.youkuaiyun.com/blsc886/article/details/148717448</guid><author>blsc886</author><pubDate>Tue, 17 Jun 2025 16:07:05 +0800</pubDate><description><![CDATA[本文简明介绍了10种经典排序算法，涵盖冒泡、选择、插入、快速、希尔、归并、堆、计数、桶和基数排序。每种算法从定义、时间复杂度（最佳/平均/最差）、空间复杂度、稳定性及适用场景进行说明，并附Java实现代码。关键对比显示：快速排序适合通用场景（平均O(nlogn)），堆排序保证最坏情况性能，归并排序兼顾稳定性和效率，而计数/桶/基数排序适用于特定数据特征。最后给出选择建议：内存敏感用堆排序，需稳定性选归并，特定数据用非比较类算法。]]></description><category></category></item><item><title><![CDATA[Vue.js组件开发—程序员小白入手教程]]></title><link>https://blog.youkuaiyun.com/blsc886/article/details/148694927</link><guid>https://blog.youkuaiyun.com/blsc886/article/details/148694927</guid><author>blsc886</author><pubDate>Mon, 16 Jun 2025 16:53:58 +0800</pubDate><description><![CDATA[针对想学习Vue.js组件开发的小白，从环境搭建、核心指令、组件化开发、进阶特性，提供基础的讲解和代码脚本执行步骤，并提供一些建议性学习路径。]]></description><category></category></item><item><title><![CDATA[简单理解Java运行时数据区域（堆、栈、方法区等）]]></title><link>https://blog.youkuaiyun.com/blsc886/article/details/148694234</link><guid>https://blog.youkuaiyun.com/blsc886/article/details/148694234</guid><author>blsc886</author><pubDate>Mon, 16 Jun 2025 16:24:15 +0800</pubDate><description><![CDATA[Java虚拟机（JVM）的内存分为多个运行时数据区域：程序计数器（线程私有，记录执行位置，无OOM）、虚拟机栈（存储栈帧，含局部变量表等，会StackOverflow）、本地方法栈（用于Native方法）、堆（共享内存，存储对象实例，GC主战场）、方法区（存储类信息，JDK8后改为元空间）。线程私有区域随线程销毁，共享区域需GC管理。理解这些区域有助于优化性能和诊断内存问题（如OOM）。JVM内存管理不断发展，如方法区从永久代改为元空间，新GC算法降低停顿。]]></description><category></category></item><item><title><![CDATA[Java队列总结分析]]></title><link>https://blog.youkuaiyun.com/blsc886/article/details/148633133</link><guid>https://blog.youkuaiyun.com/blsc886/article/details/148633133</guid><author>blsc886</author><pubDate>Fri, 13 Jun 2025 15:41:54 +0800</pubDate><description><![CDATA[本文介绍了Java中9种常见队列的特性及适用场景，包括LinkedBlockingQueue、DelayQueue、LinkedTransferQueue等阻塞/非阻塞队列。通过示例代码展示队列的典型用法，如LinkedBlockingQueue的生产者-消费者模型、DelayQueue的定时任务处理等。对比了不同队列的边界、线程安全机制和适用场景，并给出选择建议：如需要阻塞操作用LinkedBlockingQueue，延迟任务用DelayQueue，高并发场景用ConcurrentLinkedQueue等]]></description><category></category></item><item><title><![CDATA[Redisson + Lettuce 在 Spring Boot 中的最佳实践方案]]></title><link>https://blog.youkuaiyun.com/blsc886/article/details/148614237</link><guid>https://blog.youkuaiyun.com/blsc886/article/details/148614237</guid><author>blsc886</author><pubDate>Thu, 12 Jun 2025 17:57:02 +0800</pubDate><description><![CDATA[Redisson与Lettuce共存方案，Lettuce负责基础KV操作（如缓存、会话管理），Redisson处理分布式锁、布隆过滤器等复杂场景，二者分工明确，避免功能重叠。Lettuce轻量高效，适合高并发读写；Redisson提供分布式能力，但资源开销较大。配置时需隔离连接池（Lettuce通过Spring Boot自动配置，Redisson独立配置文件），并监控各自性能指标。]]></description><category></category></item><item><title><![CDATA[主流Java Redis客户端（Jedis、Lettuce、Redisson）差异对比]]></title><link>https://blog.youkuaiyun.com/blsc886/article/details/148609470</link><guid>https://blog.youkuaiyun.com/blsc886/article/details/148609470</guid><author>blsc886</author><pubDate>Thu, 12 Jun 2025 16:11:49 +0800</pubDate><description><![CDATA[Redis Java客户端选型指南摘要 主流Java客户端对比：Jedis采用阻塞I/O，需连接池支持；Lettuce/Redisson基于Netty非阻塞I/O。Jedis轻量但并发能力弱，Lettuce支持10K+并发且为SpringBoot默认，Redisson提供分布式功能但性能稍逊。实测显示Lettuce延迟最低(3.2ms)，QPS最高(72k)。选型决策：基础操作选Lettuce，分布式需求用Redisson，旧系统兼容考虑Jedis。推荐版本：Lettuce 6.2+或Redisson 3.]]></description><category></category></item><item><title><![CDATA[AI+IDEA最佳摸鱼实践——问题排查]]></title><link>https://blog.youkuaiyun.com/blsc886/article/details/148564988</link><guid>https://blog.youkuaiyun.com/blsc886/article/details/148564988</guid><author>blsc886</author><pubDate>Tue, 10 Jun 2025 18:00:07 +0800</pubDate><description><![CDATA[文章摘要：本文介绍了在IDEA中集成通义零码AI插件辅助代码开发的方法，并通过批量鉴权功能优化的实战案例，展示了AI辅助分析问题的实用性。案例中，AI识别出多线程批量处理的5个潜在问题点：内存溢出、线程池耗尽、性能瓶颈、外部资源压力和CountDownLatch性能问题，并给出了分页处理、有界队列配置、CompletableFuture异步处理和缓存优化等解决方案。最终采用分批处理策略，将大数据量分成100一批进行并发处理，有效解决了批量鉴权偶现失败的问题，同时添加了完善的异常处理和日志记录。]]></description><category></category></item><item><title><![CDATA[轻松拿捏Java 线程池——四种内置拒绝策略（Rejected Execution Handler）]]></title><link>https://blog.youkuaiyun.com/blsc886/article/details/148561736</link><guid>https://blog.youkuaiyun.com/blsc886/article/details/148561736</guid><author>blsc886</author><pubDate>Tue, 10 Jun 2025 16:24:38 +0800</pubDate><description><![CDATA[Java线程池内置四种拒绝策略，当线程池无法接受新任务（工作队列满且线程数达上限）时触发：1)AbortPolicy（默认）：抛出RejectedExecutionException，适用于关键任务场景；2)CallerRunsPolicy：由调用线程直接执行被拒任务，保证不丢失但影响调用者性能；3)DiscardPolicy：静默丢弃新任务，适用于可容忍丢失的非关键任务；4)DiscardOldestPolicy：丢弃队列中最旧任务并重试提交，适合最新任务更重要的场景。]]></description><category></category></item><item><title><![CDATA[JDK 8、JDK 17和JDK 19综合对比分析]]></title><link>https://blog.youkuaiyun.com/blsc886/article/details/148538091</link><guid>https://blog.youkuaiyun.com/blsc886/article/details/148538091</guid><author>blsc886</author><pubDate>Mon, 09 Jun 2025 17:12:26 +0800</pubDate><description><![CDATA[JDK 8、JDK 17和JDK 19在性能、特性、易用性及普及性等方面的综合对比分析，结合了各版本的核心改进和实际应用场景]]></description><category></category></item><item><title><![CDATA[Java List实现多业务数据表定制化排序功能]]></title><link>https://blog.youkuaiyun.com/blsc886/article/details/148312268</link><guid>https://blog.youkuaiyun.com/blsc886/article/details/148312268</guid><author>blsc886</author><pubDate>Thu, 29 May 2025 16:11:07 +0800</pubDate><description><![CDATA[文章摘要：当SQL无法实现特定排序时，可在Java代码中进行。针对MembershipLink对象的排序问题，原方案将整型转为字符串比较导致精度问题。改进方案：1) 使用Collections.sort直接比较整型数值实现降序；2) 采用Stream API进行链式排序。核心修正点：使用Integer.compare()代替字符串转换，调整参数顺序实现降序，并通过Collator支持中文拼音排序。两种方案均优先按sortValue降序，其次按成员名称拼音降序排列，解决了原方案的排序精度问题。]]></description><category></category></item><item><title><![CDATA[利用Nacos管理本地yaml文件及启动微服务模块]]></title><link>https://blog.youkuaiyun.com/blsc886/article/details/147409553</link><guid>https://blog.youkuaiyun.com/blsc886/article/details/147409553</guid><author>blsc886</author><pubDate>Tue, 22 Apr 2025 10:19:15 +0800</pubDate><description><![CDATA[利用Nacos管理本地yaml文件及启动微服务模块之前，IDEA启动微服务各个模块时，都是通过-Dspring.profiles.active=dev（local、sit、uat）指定不同环境参数，启动不同的环境，但是这样存在一个通病：其他团队成员改了yaml、或者自己开发完功能，需要切换远程分支做Chery-pik时，经常存在配置文件上面的代码冲突，需要反复stash，做完代码同步后，在重新应用stash，影响开发效率，甚至一不小心，会将自己本地调整的yaml配置推到远程分支，导致环境出现问题等。]]></description><category></category></item></channel></rss>