<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:media="http://search.yahoo.com/mrss/" version="2.0"><channel><title>LT技术站</title><link>https://lautung.com</link><atom:link href="https://lautung.com/rss.xml" rel="self" type="application/rss+xml"/><description>纸上得来终觉浅，绝知此事要躬行！</description><generator>Halo v2.25.2</generator><language>zh-cn</language><image><url>https://lautung.com/upload/logo.png</url><title>LT技术站</title><link>https://lautung.com</link></image><lastBuildDate>Sun, 21 Jun 2026 18:55:43 GMT</lastBuildDate><item><title><![CDATA[Spring boot开发备忘录]]></title><link>https://lautung.com/archives/NGEqBA4G</link><description><![CDATA[<img src="https://lautung.com/plugins/feed/assets/telemetry.gif?title=Spring%20boot%E5%BC%80%E5%8F%91%E5%A4%87%E5%BF%98%E5%BD%95&amp;url=/archives/NGEqBA4G" width="1" height="1" alt="" style="opacity:0;">全局异常处理 统一封装响应结果 日志数据脱敏 配置文件加密 数据库数据脱敏与加密 Maven父子模块版本管理（versions-maven-plugins）or (flatten-maven-plugin) 全局处理时间格式 数据库公共字段 Json全局处理时间格式 Flyway-数据库版本管理 自]]></description><guid isPermaLink="false">/archives/NGEqBA4G</guid><dc:creator>LT</dc:creator><pubDate>Sat, 20 Jun 2026 16:37:24 GMT</pubDate></item><item><title><![CDATA[千万级数据下，MySQL 分页优化的正确姿势]]></title><link>https://lautung.com/archives/K3hercrl</link><description><![CDATA[<img src="https://lautung.com/plugins/feed/assets/telemetry.gif?title=%E5%8D%83%E4%B8%87%E7%BA%A7%E6%95%B0%E6%8D%AE%E4%B8%8B%EF%BC%8CMySQL%20%E5%88%86%E9%A1%B5%E4%BC%98%E5%8C%96%E7%9A%84%E6%AD%A3%E7%A1%AE%E5%A7%BF%E5%8A%BF&amp;url=/archives/K3hercrl" width="1" height="1" alt="" style="opacity:0;">在业务系统中，分页查询是最常见的功能之一。但当数据量攀升到千万级时，你会发现传统的 LIMIT offset, pageSize 变得奇慢无比，越往后翻页越慢，甚至拖垮数据库。 本文将带你层层拆解深分页的性能痛点，并给出从原理到实践的终极优化方案。 一、传统分页为什么慢？ 一个经典的查询：]]></description><guid isPermaLink="false">/archives/K3hercrl</guid><dc:creator>LT</dc:creator><pubDate>Sun, 10 May 2026 09:16:13 GMT</pubDate></item><item><title><![CDATA[MySQL 性能隐形杀手：回表机制深度解析]]></title><link>https://lautung.com/archives/zZ2roKKH</link><description><![CDATA[<img src="https://lautung.com/plugins/feed/assets/telemetry.gif?title=MySQL%20%E6%80%A7%E8%83%BD%E9%9A%90%E5%BD%A2%E6%9D%80%E6%89%8B%EF%BC%9A%E5%9B%9E%E8%A1%A8%E6%9C%BA%E5%88%B6%E6%B7%B1%E5%BA%A6%E8%A7%A3%E6%9E%90&amp;url=/archives/zZ2roKKH" width="1" height="1" alt="" style="opacity:0;">如果你已经在使用索引，查询却依然很慢，很可能你正遭遇 “回表” 带来的隐形性能损耗。今天这篇文章，我们来把回表这个概念，从原理到优化手段，讲得清清楚楚。 一、用一个故事理解什么是回表 想象一座巨大的图书馆： 一楼是按书名拼音排序的索引卡片柜。每张卡片上只有“书名 + 书所在的书架号”。 二楼是按照书]]></description><guid isPermaLink="false">/archives/zZ2roKKH</guid><dc:creator>LT</dc:creator><pubDate>Sun, 10 May 2026 09:05:55 GMT</pubDate></item><item><title><![CDATA[MySql如何建立高效的复合索引？]]></title><link>https://lautung.com/archives/SbKcl1bH</link><description><![CDATA[<img src="https://lautung.com/plugins/feed/assets/telemetry.gif?title=MySql%E5%A6%82%E4%BD%95%E5%BB%BA%E7%AB%8B%E9%AB%98%E6%95%88%E7%9A%84%E5%A4%8D%E5%90%88%E7%B4%A2%E5%BC%95%EF%BC%9F&amp;url=/archives/SbKcl1bH" width="1" height="1" alt="" style="opacity:0;">高效复合索引是 MySQL 查询优化的核心，设计得当能让查询速度提升几个数量级。下面从原则、步骤到实战案例，系统梳理如何建立。 1. 核心设计原则 ① 最左前缀原则 复合索引 (A, B, C) 相当于创建了： (A) (A, B) (A, B, C) 三个索引。]]></description><guid isPermaLink="false">/archives/SbKcl1bH</guid><dc:creator>LT</dc:creator><pubDate>Sun, 10 May 2026 07:21:23 GMT</pubDate></item><item><title><![CDATA[暗室测试是什么？]]></title><link>https://lautung.com/archives/wr6JbkDQ</link><description><![CDATA[<img src="https://lautung.com/plugins/feed/assets/telemetry.gif?title=%E6%9A%97%E5%AE%A4%E6%B5%8B%E8%AF%95%E6%98%AF%E4%BB%80%E4%B9%88%EF%BC%9F&amp;url=/archives/wr6JbkDQ" width="1" height="1" alt="" style="opacity:0;">提到“暗室”，很多朋友的第一反应是冲洗照片的暗房，或者是用于声学、天线测试的尖劈房间。但当“暗室”和“电池”放在一起，特别是新能源汽车、储能设备蓬勃发展的今天，它指的其实是电磁兼容性（EMC）暗室。 简单说，它就是一间能绝对屏蔽外界电磁干扰，同时内部能吸收电磁波、模拟纯净电磁环境的“超级密室”。它的]]></description><guid isPermaLink="false">/archives/wr6JbkDQ</guid><dc:creator>LT</dc:creator><pubDate>Sun, 10 May 2026 07:17:35 GMT</pubDate></item><item><title><![CDATA[Java线程池的优雅关停：从shutdown到shutdownNow的究竟]]></title><link>https://lautung.com/archives/lf825xo8</link><description><![CDATA[<img src="https://lautung.com/plugins/feed/assets/telemetry.gif?title=Java%E7%BA%BF%E7%A8%8B%E6%B1%A0%E7%9A%84%E4%BC%98%E9%9B%85%E5%85%B3%E5%81%9C%EF%BC%9A%E4%BB%8Eshutdown%E5%88%B0shutdownNow%E7%9A%84%E7%A9%B6%E7%AB%9F&amp;url=/archives/lf825xo8" width="1" height="1" alt="" style="opacity:0;">应用重启时，线程池里的任务怎么办？直接“拔电源”，正在执行的任务会丢失，积压的队列也可能被清空。要做到“优雅关停”，就得在停止服务前，给线程池一个体面的收场：尽力完成进行中的任务、合理地放弃等待，并确保资源回收。 本文将讲解线程池关闭的核心机制，并给出标准化的优雅停机范式。 一、线程池的状态：先看懂]]></description><guid isPermaLink="false">/archives/lf825xo8</guid><dc:creator>LT</dc:creator><pubDate>Sat, 9 May 2026 13:04:43 GMT</pubDate></item><item><title><![CDATA[Java线程池如何处理异常？线程池异常处理：避开“吞异常”陷阱]]></title><link>https://lautung.com/archives/5lZPZWGR</link><description><![CDATA[<img src="https://lautung.com/plugins/feed/assets/telemetry.gif?title=Java%E7%BA%BF%E7%A8%8B%E6%B1%A0%E5%A6%82%E4%BD%95%E5%A4%84%E7%90%86%E5%BC%82%E5%B8%B8%EF%BC%9F%E7%BA%BF%E7%A8%8B%E6%B1%A0%E5%BC%82%E5%B8%B8%E5%A4%84%E7%90%86%EF%BC%9A%E9%81%BF%E5%BC%80%E2%80%9C%E5%90%9E%E5%BC%82%E5%B8%B8%E2%80%9D%E9%99%B7%E9%98%B1&amp;url=/archives/5lZPZWGR" width="1" height="1" alt="" style="opacity:0;">在使用线程池时，你很可能遇到过这种情况：任务明明出错了，日志里却干干净净，就像什么都没发生一样。这其实是因为 线程池默认会“吞掉”某些异常，尤其当你用 submit() 提交 Callable 或 Runnable 时。 本文将彻底梳理线程池异常处理的四种主要方式，并给出最佳实践，帮你告别“异常黑洞]]></description><guid isPermaLink="false">/archives/5lZPZWGR</guid><dc:creator>LT</dc:creator><pubDate>Sat, 9 May 2026 12:58:16 GMT</pubDate></item><item><title><![CDATA[Redis为什么这么快？]]></title><link>https://lautung.com/archives/UlOIwsS3</link><description><![CDATA[<img src="https://lautung.com/plugins/feed/assets/telemetry.gif?title=Redis%E4%B8%BA%E4%BB%80%E4%B9%88%E8%BF%99%E4%B9%88%E5%BF%AB%EF%BC%9F&amp;url=/archives/UlOIwsS3" width="1" height="1" alt="" style="opacity:0;">Redis 快，主要不是因为某一个原因，而是多个设计共同作用的结果： 内存操作 + 单线程模型 + IO 多路复用 + 高效数据结构 1. 单线程模型：避免复杂的线程竞争 Redis 的核心命令执行长期以来主要是单线程模型。 也就是说，大部分命令是由一个主线程顺序执行的。 这样有几个好处：]]></description><guid isPermaLink="false">/archives/UlOIwsS3</guid><dc:creator>LT</dc:creator><pubDate>Fri, 8 May 2026 03:25:05 GMT</pubDate></item><item><title><![CDATA[高可用里的“几个9”到底是什么意思？]]></title><link>https://lautung.com/archives/kaliyQ4P</link><description><![CDATA[<img src="https://lautung.com/plugins/feed/assets/telemetry.gif?title=%E9%AB%98%E5%8F%AF%E7%94%A8%E9%87%8C%E7%9A%84%E2%80%9C%E5%87%A0%E4%B8%AA9%E2%80%9D%E5%88%B0%E5%BA%95%E6%98%AF%E4%BB%80%E4%B9%88%E6%84%8F%E6%80%9D%EF%BC%9F&amp;url=/archives/kaliyQ4P" width="1" height="1" alt="" style="opacity:0;">在互联网行业中，我们经常会听到这样的话： “我们的系统做到三个9” “金融系统一般要求四个9” “运营商追求五个9” 那么，“几个9”究竟是什么意思？ 它和服务器性能有什么关系？又为什么互联网公司如此重视它？ 本文尝试用比较中性的方式，聊聊“高可用”背后的含义。 什么是高可用（High Availa]]></description><guid isPermaLink="false">/archives/kaliyQ4P</guid><dc:creator>LT</dc:creator><pubDate>Fri, 8 May 2026 03:20:51 GMT</pubDate></item><item><title><![CDATA[用台式示波器测量市电时，你真的了解“地线”吗？]]></title><link>https://lautung.com/archives/tsCPjdeh</link><description><![CDATA[<img src="https://lautung.com/plugins/feed/assets/telemetry.gif?title=%E7%94%A8%E5%8F%B0%E5%BC%8F%E7%A4%BA%E6%B3%A2%E5%99%A8%E6%B5%8B%E9%87%8F%E5%B8%82%E7%94%B5%E6%97%B6%EF%BC%8C%E4%BD%A0%E7%9C%9F%E7%9A%84%E4%BA%86%E8%A7%A3%E2%80%9C%E5%9C%B0%E7%BA%BF%E2%80%9D%E5%90%97%EF%BC%9F&amp;url=/archives/tsCPjdeh" width="1" height="1" alt="" style="opacity:0;">很多电子初学者第一次接触示波器时，都会有一种错觉： “不就是测个波形吗？” 直到某一天： 探头一夹 “啪”一声 火花四溅 空气开关跳闸 这时候才发现： 原来示波器并不是万用表。 尤其是在测量市电（220V AC）的时候，台式示波器的错误使用不仅可能烧毁设备，更可能直接触电。 今天就来系统聊聊：]]></description><guid isPermaLink="false">/archives/tsCPjdeh</guid><dc:creator>LT</dc:creator><pubDate>Wed, 6 May 2026 16:46:30 GMT</pubDate></item><item><title><![CDATA[EMI、EMS 和 EMC 到底是什么意思？一篇文章讲清楚]]></title><link>https://lautung.com/archives/oBHLJ7lM</link><description><![CDATA[<img src="https://lautung.com/plugins/feed/assets/telemetry.gif?title=EMI%E3%80%81EMS%20%E5%92%8C%20EMC%20%E5%88%B0%E5%BA%95%E6%98%AF%E4%BB%80%E4%B9%88%E6%84%8F%E6%80%9D%EF%BC%9F%E4%B8%80%E7%AF%87%E6%96%87%E7%AB%A0%E8%AE%B2%E6%B8%85%E6%A5%9A&amp;url=/archives/oBHLJ7lM" width="1" height="1" alt="" style="opacity:0;">做电子产品、电源、电机驱动、单片机控制板或者通信设备时，经常会听到三个词： EMI、EMS、EMC 很多初学者容易把它们混在一起。其实它们之间的关系很简单： EMI：我会不会干扰别人 EMS：别人干扰我，我扛不扛得住]]></description><guid isPermaLink="false">/archives/oBHLJ7lM</guid><dc:creator>LT</dc:creator><enclosure url="https://lautung.com/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=%2Fupload%2FChatGPT%2520Image%25202026%25E5%25B9%25B45%25E6%259C%25886%25E6%2597%25A5%252022_50_44.png&amp;size=m" type="image/jpeg" length="872725"/><pubDate>Wed, 6 May 2026 14:30:31 GMT</pubDate></item><item><title><![CDATA[Keil5的编辑器中文乱码问题]]></title><link>https://lautung.com/archives/xJIeXbF7</link><description><![CDATA[<img src="https://lautung.com/plugins/feed/assets/telemetry.gif?title=Keil5%E7%9A%84%E7%BC%96%E8%BE%91%E5%99%A8%E4%B8%AD%E6%96%87%E4%B9%B1%E7%A0%81%E9%97%AE%E9%A2%98&amp;url=/archives/xJIeXbF7" width="1" height="1" alt="" style="opacity:0;">]]></description><guid isPermaLink="false">/archives/xJIeXbF7</guid><dc:creator>LT</dc:creator><category>嵌入式</category><pubDate>Wed, 22 Apr 2026 10:14:15 GMT</pubDate></item><item><title><![CDATA[Flutter 基础组件]]></title><link>https://lautung.com/archives/Lygo3Pf0</link><description><![CDATA[<img src="https://lautung.com/plugins/feed/assets/telemetry.gif?title=Flutter%20%E5%9F%BA%E7%A1%80%E7%BB%84%E4%BB%B6&amp;url=/archives/Lygo3Pf0" width="1" height="1" alt="" style="opacity:0;">基础布局组件（Layout Widgets） Row / Column: 水平或垂直排列子组件。通过 mainAxisAlignment 和 crossAxisAlignment 控制对齐。 Stack: 允许子组件重叠排列，类似 FrameLayout。通常配合 Positioned 来精准定位。]]></description><guid isPermaLink="false">/archives/Lygo3Pf0</guid><dc:creator>LT</dc:creator><category>Flutter</category><pubDate>Thu, 9 Apr 2026 13:48:12 GMT</pubDate></item><item><title><![CDATA[C语言-标准库：概述]]></title><link>https://lautung.com/archives/YsVG9zL8</link><description><![CDATA[<img src="https://lautung.com/plugins/feed/assets/telemetry.gif?title=C%E8%AF%AD%E8%A8%80-%E6%A0%87%E5%87%86%E5%BA%93%EF%BC%9A%E6%A6%82%E8%BF%B0&amp;url=/archives/YsVG9zL8" width="1" height="1" alt="" style="opacity:0;">C 标准库 – 参考手册 | 菜鸟教程]]></description><guid isPermaLink="false">/archives/YsVG9zL8</guid><dc:creator>LT</dc:creator><pubDate>Sun, 29 Mar 2026 16:11:00 GMT</pubDate></item><item><title><![CDATA[Kotlin Flow 一 概述]]></title><link>https://lautung.com/archives/Ps4Yk9If</link><description><![CDATA[<img src="https://lautung.com/plugins/feed/assets/telemetry.gif?title=Kotlin%20Flow%20%E4%B8%80%20%E6%A6%82%E8%BF%B0&amp;url=/archives/Ps4Yk9If" width="1" height="1" alt="" style="opacity:0;">一、一句话说清：Flow 是什么？ Flow = 协程版的「数据流」 用来处理 异步、连续、多个值 的序列。 类比一下你就懂： 返回单个值：suspend fun：协程挂起函数 返回多个连续值：Flow&lt;T&gt;：数据流 它就是协程世界里的 RxJava / LiveData]]></description><guid isPermaLink="false">/archives/Ps4Yk9If</guid><dc:creator>LT</dc:creator><pubDate>Tue, 24 Mar 2026 10:37:22 GMT</pubDate></item><item><title><![CDATA[Kotlin 协程一、概述]]></title><link>https://lautung.com/archives/PCnwEw9B</link><description><![CDATA[<img src="https://lautung.com/plugins/feed/assets/telemetry.gif?title=Kotlin%20%E5%8D%8F%E7%A8%8B%E4%B8%80%E3%80%81%E6%A6%82%E8%BF%B0&amp;url=/archives/PCnwEw9B" width="1" height="1" alt="" style="opacity:0;">协程的难点 新概念 不同编程语言，对协程的实现不同。 对线程基础不牢。 协程是什么？ 协程基于线程，它是轻量级的线程。 为什么它不是作为一个框架存在呢？Kotlin协程需要编译器，通常我们不称它为框架。 在Android中解决的问题 &lt;]]></description><guid isPermaLink="false">/archives/PCnwEw9B</guid><dc:creator>LT</dc:creator><pubDate>Mon, 23 Mar 2026 14:18:34 GMT</pubDate></item><item><title><![CDATA[Android 架构关注点]]></title><link>https://lautung.com/archives/Zg3n8OVH</link><description><![CDATA[<img src="https://lautung.com/plugins/feed/assets/telemetry.gif?title=Android%20%E6%9E%B6%E6%9E%84%E5%85%B3%E6%B3%A8%E7%82%B9&amp;url=/archives/Zg3n8OVH" width="1" height="1" alt="" style="opacity:0;">编译 SDK 配置中心和灰度 AdTest 调试组件 Dokit等开源/测试开发、日志回捞、底层的HOOK 性能监控 ANR、Mem、Native Crash(FPS|卡顿、IO 和电池） 基础网络组件 网络优化 HttpDNS（json调整、Json原生的解析方式 加快反序列化） 埋点框架 页面曝]]></description><guid isPermaLink="false">/archives/Zg3n8OVH</guid><dc:creator>LT</dc:creator><pubDate>Sun, 22 Mar 2026 04:35:26 GMT</pubDate></item><item><title><![CDATA[Android MVVM 项目 AI 编程提示词工程]]></title><link>https://lautung.com/archives/TwfaoiUA</link><description><![CDATA[<img src="https://lautung.com/plugins/feed/assets/telemetry.gif?title=Android%20MVVM%20%E9%A1%B9%E7%9B%AE%20AI%20%E7%BC%96%E7%A8%8B%E6%8F%90%E7%A4%BA%E8%AF%8D%E5%B7%A5%E7%A8%8B&amp;url=/archives/TwfaoiUA" width="1" height="1" alt="" style="opacity:0;">一、提示词工程说明 本提示词工程适用于指导 AI 工具（如 GPT、豆包、CodeLlama 等）完成符合谷歌 Android 最佳实践和阿里 Android 开发规范的 Android 项目开发，覆盖 MVVM 架构、Kotlin 生态、工程配置、安全加密、调试监控等全维度需求，可直接复制到 AI]]></description><guid isPermaLink="false">/archives/TwfaoiUA</guid><dc:creator>LT</dc:creator><category>Android</category><pubDate>Wed, 25 Feb 2026 18:25:00 GMT</pubDate></item><item><title><![CDATA[SNMP 协议解析]]></title><link>https://lautung.com/archives/BZwneKby</link><description><![CDATA[<img src="https://lautung.com/plugins/feed/assets/telemetry.gif?title=SNMP%20%E5%8D%8F%E8%AE%AE%E8%A7%A3%E6%9E%90&amp;url=/archives/BZwneKby" width="1" height="1" alt="" style="opacity:0;">1. 前言 SNMP（Simple Network Management Protocol）是网络设备、服务器、工业电源、通信电源、UPS、充电桩的通用监控协议。 不管是后端监控、嵌入式开发、Android 现场调试，还是机房运维，SNMP 都是必备技能。 本文内容： 原理 + 报文 + 架构 +]]></description><guid isPermaLink="false">/archives/BZwneKby</guid><dc:creator>LT</dc:creator><category>SNMP协议</category><pubDate>Tue, 24 Feb 2026 08:33:35 GMT</pubDate></item><item><title><![CDATA[Java transient关键字]]></title><link>https://lautung.com/archives/B6CcmsDu</link><description><![CDATA[<img src="https://lautung.com/plugins/feed/assets/telemetry.gif?title=Java%20transient%E5%85%B3%E9%94%AE%E5%AD%97&amp;url=/archives/B6CcmsDu" width="1" height="1" alt="" style="opacity:0;">transient 是 Java 中的一个字段修饰符，主要用于对象序列化（Serialization）时控制某些字段不被序列化。 transient 的中文翻译是 "瞬态的" 或 "临时的"。 下面从概念、原理、使用场景、示例和注意事项进行系统讲解。 一、什么是 transient 当一个类实现了]]></description><guid isPermaLink="false">/archives/B6CcmsDu</guid><dc:creator>LT</dc:creator><category>Java</category><pubDate>Tue, 24 Feb 2026 05:02:13 GMT</pubDate></item></channel></rss>