<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[github_38727595的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/github_38727595</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; github_38727595]]></copyright><item><title><![CDATA[详解java中的ReentrantReadWriteLock]]></title><link>https://blog.youkuaiyun.com/github_38727595/article/details/160328139</link><guid>https://blog.youkuaiyun.com/github_38727595/article/details/160328139</guid><author>github_38727595</author><pubDate>Mon, 20 Apr 2026 11:05:03 +0800</pubDate><description><![CDATA[Java的ReentrantReadWriteLock实现了读写分离的锁机制，适用于读多写少的并发场景。它提供共享读锁和独占写锁，支持可重入性和锁降级功能，通过AQS实现高效同步。使用时要避免写锁饥饿，确保锁的正确释放，并注意锁降级规则。该锁在缓存系统、配置中心等读密集型场景中性能优势明显，但写频繁时可能产生竞争。合理选择公平/非公平模式，并配合try-finally确保锁释放，可有效提升并发性能。]]></description><category></category></item><item><title><![CDATA[Java泛型详解：从入门到精通]]></title><link>https://blog.youkuaiyun.com/github_38727595/article/details/159536417</link><guid>https://blog.youkuaiyun.com/github_38727595/article/details/159536417</guid><author>github_38727595</author><pubDate>Fri, 27 Mar 2026 10:49:05 +0800</pubDate><description><![CDATA[Java泛型是Java SE 5引入的重要特性，通过参数化类型实现了类型安全的代码复用。泛型消除了强制类型转换，在编译时进行类型检查，减少了运行时错误。泛型类和接口通过在类名/接口名后添加类型参数定义，支持多类型参数。泛型方法在返回值前声明类型参数，可使用有界类型参数限制范围。通配符包括无界通配符(？)、上界通配符(？extends)和下界通配符(？super)，提供了更灵活的类型处理方式。泛型显著提高了代码的安全性、可读性和复用性，是现代Java开发的核心特性之一。]]></description><category></category></item><item><title><![CDATA[张雪峰：寒门学子的灯塔，升学路上的引路人]]></title><link>https://blog.youkuaiyun.com/github_38727595/article/details/159461080</link><guid>https://blog.youkuaiyun.com/github_38727595/article/details/159461080</guid><author>github_38727595</author><pubDate>Wed, 25 Mar 2026 09:51:11 +0800</pubDate><description><![CDATA[张雪峰是互联网时代教育服务转型的标志性人物。他用流量与专业重新定义了升学指导的边界，推动了职业教育与升学指导的普及。尽管他的言论存在争议，但不可否认的是，他的存在让更多人意识到了升学规划的重要性。]]></description><category></category></item><item><title><![CDATA[详解JUC包中的Condition接口]]></title><link>https://blog.youkuaiyun.com/github_38727595/article/details/157909491</link><guid>https://blog.youkuaiyun.com/github_38727595/article/details/157909491</guid><author>github_38727595</author><pubDate>Mon, 09 Feb 2026 18:09:59 +0800</pubDate><description><![CDATA[Java的Condition接口提供了比Object.wait()/notify()更精细的线程协调机制，主要特点包括：1）一个Lock可创建多个Condition，实现多条件精准唤醒；2）支持await()、signal()等方法，可响应中断；3）基于AQS实现，通过独立等待队列管理线程。典型应用如生产者-消费者模型，使用时需注意循环检查条件、避免死锁等最佳实践。Condition通过多条件队列和灵活唤醒策略，显著提升了并发程序的可控性和性能。]]></description><category></category></item><item><title><![CDATA[详解java中的FunctionalInterface（函数式接口）]]></title><link>https://blog.youkuaiyun.com/github_38727595/article/details/157692294</link><guid>https://blog.youkuaiyun.com/github_38727595/article/details/157692294</guid><author>github_38727595</author><pubDate>Tue, 03 Feb 2026 15:32:10 +0800</pubDate><description><![CDATA[Java函数式接口是Java8引入的核心特性，主要用于支持Lambda表达式和函数式编程。它要求接口只能包含一个抽象方法，可使用@FunctionalInterface注解标记。Java内置了Function、Consumer、Supplier等常用函数式接口，支持数据转换、条件判断等操作。函数式接口广泛应用于StreamAPI、并发编程和事件处理等场景。使用Lambda表达式可以简化代码，提高可读性。开发者也可自定义函数式接口，但需遵循单一抽象方法的规则。合理使用函数式接口能显著提升Java代码的简洁性]]></description><category></category></item><item><title><![CDATA[谷歌开源翻译模型 TranslateGemma 深度解析与本地部署实践]]></title><link>https://blog.youkuaiyun.com/github_38727595/article/details/157514662</link><guid>https://blog.youkuaiyun.com/github_38727595/article/details/157514662</guid><author>github_38727595</author><pubDate>Thu, 29 Jan 2026 18:12:37 +0800</pubDate><description><![CDATA[谷歌发布开源翻译模型TranslateGemma，基于Gemma3架构，支持55种语言的高精度翻译。该模型系列提供4B、12B和27B三种参数规模，满足不同硬件环境需求，其中12B版本性能超越27B基线模型。核心技术采用两阶段微调策略，结合监督学习和强化学习优化翻译质量。原生支持多模态翻译，可直接处理图像内嵌文字。配套提供基于Ollama的本地部署工具类，实现零网络延迟的翻译服务。该模型适用于企业级翻译、内容创作等场景，兼具高性能与部署灵活性。]]></description><category></category></item><item><title><![CDATA[stream().toList()与.collect(Collectors.toList())]]></title><link>https://blog.youkuaiyun.com/github_38727595/article/details/157512358</link><guid>https://blog.youkuaiyun.com/github_38727595/article/details/157512358</guid><author>github_38727595</author><pubDate>Thu, 29 Jan 2026 16:32:44 +0800</pubDate><description><![CDATA[Java Stream中.toList()（Java16+）和.collect(Collectors.toList())（Java8+）的主要区别：1）.toList()返回不可变列表（修改会抛出异常），而Collectors.toList()返回可变ArrayList；2）.toList()在Java16+中性能更优但仅限不可变场景；3）版本兼容性方面，Collectors.toList()支持Java8+，.toList()仅限Java16+；4）Collectors.toList()支持null元素.]]></description><category></category></item><item><title><![CDATA[记录一次由yum update引起的http服务ERR_CONTENT_LENGTH_MISMATCH问题]]></title><link>https://blog.youkuaiyun.com/github_38727595/article/details/157028115</link><guid>https://blog.youkuaiyun.com/github_38727595/article/details/157028115</guid><author>github_38727595</author><pubDate>Fri, 16 Jan 2026 16:25:36 +0800</pubDate><description><![CDATA[CentOS服务器执行yum update后http服务浏览器访问出现ERR_CONTENT_LENGTH_MISMATCH错误，导致业务页面无法访问。经过多轮排查（Nginx配置、容器部署、前端gzip问题）均未解决，最终通过AI建议发现是系统TCP内存参数被更新导致。修改/etc/sysctl.conf中的tcp_mem等网络参数后问题解决。该案例表明系统更新可能影响网络配置，建议保留关键服务的配置备份。]]></description><category></category></item><item><title><![CDATA[详解MapStruct Plus]]></title><link>https://blog.youkuaiyun.com/github_38727595/article/details/156944706</link><guid>https://blog.youkuaiyun.com/github_38727595/article/details/156944706</guid><author>github_38727595</author><pubDate>Wed, 14 Jan 2026 14:23:55 +0800</pubDate><description><![CDATA[MapStructPlus是基于MapStruct的增强工具，通过@AutoMapper注解自动生成Java类型映射接口，简化对象转换流程。核心特性包括自动化接口生成、复杂对象深度转换、Map与对象互转增强等。支持Maven依赖快速集成，提供简单对象转换、嵌套结构处理、枚举转换等场景实现方案。与SpringBoot无缝集成，支持依赖注入。相比原生MapStruct，MapStructPlus通过注解驱动显著提升开发效率，同时保持高性能，适用于多层对象模型和快速原型开发场景。最佳实践建议根据需求选择...]]></description><category></category></item><item><title><![CDATA[JDK8中的Optional深度解读]]></title><link>https://blog.youkuaiyun.com/github_38727595/article/details/156941590</link><guid>https://blog.youkuaiyun.com/github_38727595/article/details/156941590</guid><author>github_38727595</author><pubDate>Wed, 14 Jan 2026 11:14:15 +0800</pubDate><description><![CDATA[JDK8引入的Optional类旨在解决空指针问题，通过容器化包装可能为null的对象，强制显式处理空值场景。它优化了方法返回值，明确表示&quot;可能无结果&quot;，并提供map、flatMap等链式操作支持函数式编程。最佳实践包括：作为方法返回值而非参数，避免性能陷阱，合理结合Stream流。常见误区有误用isPresent()+get()和重复判空。典型应用场景包括安全获取嵌套属性、强制值存在校验等。正确使用Optional可显著提升代码健壮性和可读性，但需注意性能敏感场景的优化。]]></description><category></category></item><item><title><![CDATA[详解java中的ConcurrentSkipListMap]]></title><link>https://blog.youkuaiyun.com/github_38727595/article/details/156237294</link><guid>https://blog.youkuaiyun.com/github_38727595/article/details/156237294</guid><author>github_38727595</author><pubDate>Wed, 24 Dec 2025 17:03:34 +0800</pubDate><description><![CDATA[ConcurrentSkipListMap是Java并发包中的线程安全有序映射实现，基于跳表数据结构。它支持自然排序或自定义比较器，提供高效的并发访问能力。核心特性包括：采用多层链表结构实现快速查找；使用CAS操作保证并发安全；查找、插入、删除操作均为O(logn)时间复杂度。适用于需要高并发有序访问的场景，如实时排行榜、范围查询等。相比TreeMap具有更好的并发性能，相比ConcurrentHashMap则提供有序性支持。使用时需注意禁止null键值、内存开销较大等限制。]]></description><category></category></item><item><title><![CDATA[大模型学习笔记——学习前的基础准备：论文中常见的数学符号与函数回顾]]></title><link>https://blog.youkuaiyun.com/github_38727595/article/details/156204176</link><guid>https://blog.youkuaiyun.com/github_38727595/article/details/156204176</guid><author>github_38727595</author><pubDate>Tue, 23 Dec 2025 20:43:00 +0800</pubDate><description><![CDATA[本文系统梳理了Transformer模型中常见的数学符号与激活函数。详细介绍了求和符号Σ、偏导数∂、梯度∇等数学符号的读音和含义，并解释了sigmoid、softmax、ReLU、GELU等核心激活函数的特性与应用场景。特别对GELU函数进行了深入分析，包括其数学公式、近似计算方法以及在Transformer中的重要作用。此外还补充介绍了tanh、LeakyReLU、Swish等衍生函数的特性。这些数学工具是理解Transformer注意力机制和前馈网络的关键基础。]]></description><category></category></item><item><title><![CDATA[详解java中的线程间协作工具：CountDownLatch,Semaphore,CyclicBarrier（二）]]></title><link>https://blog.youkuaiyun.com/github_38727595/article/details/156095954</link><guid>https://blog.youkuaiyun.com/github_38727595/article/details/156095954</guid><author>github_38727595</author><pubDate>Fri, 19 Dec 2025 20:08:25 +0800</pubDate><description><![CDATA[Java并发编程中的三大同步工具类各有特点：CountDownLatch用于一次性线程同步，通过计数器实现主线程等待多个子线程完成；Semaphore通过许可证机制控制资源并发访问，支持动态调整许可证数量；CyclicBarrier则实现多线程循环同步，屏障触发后可重置复用。此外，Exchanger支持线程间数据交换，Phaser提供更灵活的多阶段同步能力。这些工具基于AQS实现，适用于不同并发场景，开发者可根据任务特性选择合适的同步机制。]]></description><category></category></item><item><title><![CDATA[详解java中的BlockingQueue阻塞队列]]></title><link>https://blog.youkuaiyun.com/github_38727595/article/details/156061874</link><guid>https://blog.youkuaiyun.com/github_38727595/article/details/156061874</guid><author>github_38727595</author><pubDate>Thu, 18 Dec 2025 20:25:40 +0800</pubDate><description><![CDATA[Java的BlockingQueue是并发编程中实现生产者-消费者模式的核心工具，提供线程安全的阻塞操作。主要实现类包括基于数组的ArrayBlockingQueue、链表的LinkedBlockingQueue、优先级的PriorityBlockingQueue等，各有适用场景。通过锁机制和条件变量保证线程安全，支持阻塞/非阻塞操作及超时控制。典型应用于线程池任务队列、消息传递和流量控制。使用时需注意死锁风险、无界队列的内存问题及性能优化。]]></description><category></category></item><item><title><![CDATA[大模型学习之——初步了解：量化、LoRA、QLoRA]]></title><link>https://blog.youkuaiyun.com/github_38727595/article/details/155282829</link><guid>https://blog.youkuaiyun.com/github_38727595/article/details/155282829</guid><author>github_38727595</author><pubDate>Wed, 26 Nov 2025 20:32:08 +0800</pubDate><description><![CDATA[量化是一种模型压缩技术，通过降低参数精度（如FP32→INT8）减小模型体积，而LoRA则是通过低秩适配器实现高效微调，仅训练少量新增参数。QLoRA结合二者优势，先对模型进行4-bit量化，再应用LoRA微调，使单卡GPU也能训练大模型。实战示例展示了如何使用LoRA微调代码生成模型，包括数据准备、模型配置、训练和推理全流程，并对比了不同场景下的超参数设置建议。三种技术形成了一套递进的模型瘦身+定制方案，显著降低了大规模模型微调的资源门槛。]]></description><category></category></item><item><title><![CDATA[RAG系统学习之——基于LangChain+Milvus+Ollama+Streamlit搭建本地RAG系统]]></title><link>https://blog.youkuaiyun.com/github_38727595/article/details/154980937</link><guid>https://blog.youkuaiyun.com/github_38727595/article/details/154980937</guid><author>github_38727595</author><pubDate>Tue, 18 Nov 2025 10:47:42 +0800</pubDate><description><![CDATA[本文介绍了如何搭建一个完全本地化的RAG（检索增强生成）系统，结合LangChain、Milvus、Ollama和Streamlit等技术。系统具备文档处理、向量存储、本地大语言模型和友好交互界面，支持多种文件格式，确保数据隐私。文章详细说明了环境配置、核心代码实现、高级功能扩展和部署方案，提供了从开发到生产的一站式解决方案，适用于企业知识库、智能客服等场景，兼顾安全性和可扩展性。]]></description><category></category></item><item><title><![CDATA[RAG系统学习之——RAG技术详解与实战指南]]></title><link>https://blog.youkuaiyun.com/github_38727595/article/details/154845919</link><guid>https://blog.youkuaiyun.com/github_38727595/article/details/154845919</guid><author>github_38727595</author><pubDate>Fri, 14 Nov 2025 19:16:25 +0800</pubDate><description><![CDATA[本文全面介绍了RAG（检索增强生成）技术的背景、定义、优缺点及实战应用。RAG通过结合外部知识检索和大模型生成能力，有效解决了大语言模型的知识局限性和幻觉问题，成为企业知识管理的热门方案。文章详细阐述了RAG的技术架构、演进历程及适用场景，并提供了一个本地RAG系统的实战项目。RAG技术具有知识更新快、成本低、可解释性强等优势，但也面临检索质量依赖、文档处理复杂等挑战，特别适合企业知识库、专业咨询等场景。随着技术发展，RAG正在向模块化、图谱化等更高级形态演进。]]></description><category></category></item><item><title><![CDATA[Java中的Thread、ThreadLocalMap、ThreadLocal三者之间的关系，ThreadLocalMap.Entry的弱引用设计]]></title><link>https://blog.youkuaiyun.com/github_38727595/article/details/154358372</link><guid>https://blog.youkuaiyun.com/github_38727595/article/details/154358372</guid><author>github_38727595</author><pubDate>Mon, 03 Nov 2025 19:38:28 +0800</pubDate><description><![CDATA[ThreadLocal通过ThreadLocalMap实现线程隔离存储，每个线程持有独立的ThreadLocalMap，通过ThreadLocal的set/get方法存取数据。弱引用设计允许ThreadLocal实例被GC回收，但需配合remove()清理残留值，尤其在线程池场景中。相比同步锁，ThreadLocal以空间换时间实现无锁线程安全，适用于数据库连接、会话管理等场景。最佳实践包括及时清理和避免存储大对象，平衡线程安全与内存管理]]></description><category></category></item><item><title><![CDATA[SpringBoot web项目中使用@ExceptionHandler处理全局异常？或是使用HandlerExceptionResolver？哪种更合适]]></title><link>https://blog.youkuaiyun.com/github_38727595/article/details/154082279</link><guid>https://blog.youkuaiyun.com/github_38727595/article/details/154082279</guid><author>github_38727595</author><pubDate>Wed, 29 Oct 2025 19:08:51 +0800</pubDate><description><![CDATA[SpringBoot项目中处理全局异常时，@ExceptionHandler+@ControllerAdvice更适合RESTful API场景，配置简单且与SpringMVC深度集成；HandlerExceptionResolver适用于全局拦截和复杂处理逻辑，但配置复杂。最佳实践是混合使用，优先采用@ControllerAdvice处理Controller层异常，再通过HandlerExceptionResolver捕获未处理的全局异常。建议大多数项目优先选择@ExceptionHandler方式]]></description><category></category></item><item><title><![CDATA[＜? extends T＞是什么，＜? super T＞又是什么，PECS是指什么]]></title><link>https://blog.youkuaiyun.com/github_38727595/article/details/153969312</link><guid>https://blog.youkuaiyun.com/github_38727595/article/details/153969312</guid><author>github_38727595</author><pubDate>Mon, 27 Oct 2025 14:43:24 +0800</pubDate><description><![CDATA[Java泛型通配符&lt;? extends T&gt;和&lt;? super T&gt;分别用于生产者（只读）和消费者（只写）场景。&lt;? extends T&gt;表示元素类型为T或其子类，确保安全读取但禁止写入；&lt;? super T&gt;表示元素类型为T或其父类，允许安全写入但读取时类型信息丢失。PECS法则（Producer Extends, Consumer Super）指导这两种通配符的应用，如集合拷贝和栈操作，通过编译期类型检查保证安全性，避免运行时类型错误。]]></description><category></category></item></channel></rss>