<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Triple_kill的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/Triple_kill</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Triple_kill]]></copyright><item><title><![CDATA[线上 Spring Boot jar 出了 bug？我写了个“外科手术“工具，不重新打包直接换 class]]></title><link>https://blog.youkuaiyun.com/Triple_kill/article/details/164325853</link><guid>https://blog.youkuaiyun.com/Triple_kill/article/details/164325853</guid><author>Triple_kill</author><pubDate>Thu, 03 Sep 2026 10:08:51 +0800</pubDate><description><![CDATA[层技术桌面框架Tauri 2（macOS 用 WKWebView，Windows 用 WebView2）前端核心引擎Rust +zipcrate，零系统命令依赖class 解析纯 Rust 实现（常量池 / 字段 / 方法 / 注解）反编译体积小：安装包仅 2~3 MB（Electron 同类应用动辄上百 MB）性能好：zip 解析、CRC 校验、归档重写全是 Rust 原生实现，大 jar 也不卡可测试：核心引擎是纯函数化的 Rust 库，cargo test覆盖了全链路替换用例。]]></description><category></category></item><item><title><![CDATA[离线场景Python脚本独立Venv虚拟环境方案完整版文档]]></title><link>https://blog.youkuaiyun.com/Triple_kill/article/details/159429295</link><guid>https://blog.youkuaiyun.com/Triple_kill/article/details/159429295</guid><author>Triple_kill</author><pubDate>Tue, 24 Mar 2026 16:18:41 +0800</pubDate><description><![CDATA[基于Python原生venv虚拟环境，实现客户维度+脚本维度双层环境隔离：每一个接入的企业客户，分配独立的venv根目录；客户下每一个编写的Python脚本，对应一个专属子venv环境。所有Python依赖提前离线预装，客户现场全程无联网、无在线pip安装、无环境冲突，Java后端仅负责调度对应专属环境执行脚本，执行完成后统一收集结果展示。]]></description><category></category></item><item><title><![CDATA[cron表达式介绍]]></title><link>https://blog.youkuaiyun.com/Triple_kill/article/details/134122969</link><guid>https://blog.youkuaiyun.com/Triple_kill/article/details/134122969</guid><author>Triple_kill</author><pubDate>Mon, 30 Oct 2023 16:56:03 +0800</pubDate><description><![CDATA[a/b表示从a开始每隔时间b，例如：5/10 * * * * * 表示每一分钟的5秒、15秒、25秒…在子表达式（分钟）里的“3/20”表示从第3分钟开始，每20分钟（它和“3，23，43”）的含义一样。0 0 9-17 * * * 每天朝九晚五时间内的0分0秒触发。0 0-8/2 * * * 每一天0-8天每2小时执行一次任务。7位：* * * * * * *	秒、分、时、天、月、周、年。6位：* * * * * *	秒、分、时、天、月、周。5位：* * * * *	分、时、天、月、周。]]></description><category></category></item><item><title><![CDATA[手把手教你接入微信支付，再学不会就过分了]]></title><link>https://blog.youkuaiyun.com/Triple_kill/article/details/115936517</link><guid>https://blog.youkuaiyun.com/Triple_kill/article/details/115936517</guid><author>Triple_kill</author><pubDate>Wed, 21 Apr 2021 10:12:51 +0800</pubDate><description><![CDATA[随着微信小程序的发展，越来越多的移动端应用选择了微信产品作为媒介。无论是公众号开发还是小程序开发，微信支付永远都是绕不开的话题。由于微信支付涉及了很多场景，本文我们只学习如何在公众号、小程序中接入微信支付。



一、微信支付的前提条件

1.1 公众号

微信公众号大体上可以分为服务号和订阅号，订阅号和服务号的具体区别在以前写过的一篇文章Spring Boot开发微信公众号中具体介绍了，这里就不再赘述，总的来说就是服务号提供了更高级的功能。

微信支付接入需要已经完成微信认证的服务号。如果是小程序的话，.]]></description><category></category></item><item><title><![CDATA[Spring 自带的观察者模式]]></title><link>https://blog.youkuaiyun.com/Triple_kill/article/details/115509491</link><guid>https://blog.youkuaiyun.com/Triple_kill/article/details/115509491</guid><author>Triple_kill</author><pubDate>Thu, 08 Apr 2021 10:45:11 +0800</pubDate><description><![CDATA[1. 概述

在设计模式中，观察者模式是一个比较常用的设计模式。维基百科解释如下：


FROM https://zh.wikipedia.org/wiki/观察者模式

观察者模式是软件设计模式的一种。在此种模式中，一个目标对象管理所有相依于它的观察者对象，并且在它本身的状态改变时主动发出通知。这通常透过呼叫各观察者所提供的方法来实现。

此种模式通常被用来实时事件处理系统。


在我们日常业务开发中，观察者模式对我们很大的一个作用，在于实现业务的解耦。以用户注册的场景来举例子，假设在用户注册完成时，需要]]></description><category></category></item><item><title><![CDATA[JAVA 并发知识库]]></title><link>https://blog.youkuaiyun.com/Triple_kill/article/details/109364954</link><guid>https://blog.youkuaiyun.com/Triple_kill/article/details/109364954</guid><author>Triple_kill</author><pubDate>Thu, 29 Oct 2020 19:08:36 +0800</pubDate><description><![CDATA[1、Java中实现多线程有几种方法
继承Thread类；
实现Runnable接口；
实现Callable接口通过FutureTask包装器来创建Thread线程；
使用ExecutorService、Callable、Future实现有返回结果的多线程（也就是使用了ExecutorService来管理前面的三种方式）。

2、继承 Thread 类
Thread 类本质上是实现了 Runnable 接口的一个实例，代表一个线程的实例。
启动线程的唯一方法就是通过 Thread 类的 start()实例方法]]></description><category></category></item><item><title><![CDATA[java集合]]></title><link>https://blog.youkuaiyun.com/Triple_kill/article/details/109362335</link><guid>https://blog.youkuaiyun.com/Triple_kill/article/details/109362335</guid><author>Triple_kill</author><pubDate>Thu, 29 Oct 2020 16:40:28 +0800</pubDate><description><![CDATA[ArrayList和linkedList的区别
ArrayList: 可以看作是能够自动增长容量的数组
ArrayList的toArray方法返回一个数组
ArrayList的asList方法返回一个列表
ArrayList底层的实现是Array, 数组扩容实现
LinkList是一个双链表,在添加和删除元素时具有比ArrayList更好的性能.但在get与set方面弱于ArrayList.当然,这些对比都是指数据量很大或者操作很频繁。

HashMap和HashTable的区别
ConcurrentHas]]></description><category></category></item><item><title><![CDATA[java基础]]></title><link>https://blog.youkuaiyun.com/Triple_kill/article/details/109361024</link><guid>https://blog.youkuaiyun.com/Triple_kill/article/details/109361024</guid><author>Triple_kill</author><pubDate>Thu, 29 Oct 2020 16:05:09 +0800</pubDate><description><![CDATA[什么是数据结构
	计算机保存、组织数据的方式

java数据结构包括哪些
		1：线性链表--ArrayList
		2: 链表--LinkedList
		3: 栈--Stack
		4:队列--Queue
		5: 图--map
		6: 树--tree

java中有几种数据类型
	整形：byte、short、int、long
	浮点型：float、 double
	字符型：char
	布尔型：boolean

什么是拆装箱
	装箱就是自动将基本数据类型转换为包装器类型（int--&gt;Intege]]></description><category></category></item><item><title><![CDATA[连接查询时，用小结果集驱动大结果集]]></title><link>https://blog.youkuaiyun.com/Triple_kill/article/details/107390410</link><guid>https://blog.youkuaiyun.com/Triple_kill/article/details/107390410</guid><author>Triple_kill</author><pubDate>Thu, 16 Jul 2020 19:18:47 +0800</pubDate><description><![CDATA[join操作表适用于小于百万级别的，如果超过百万级别，建议单标查询
驱动表：数据少的表
被驱动表： 数据多的表
联表查询，explain执行计划中，id相等的，按照从上向下的顺序依次执行，先执行的即为驱动表
mysql关联查询： 循环嵌套查询， 驱动表作为循环的基础数据，然后一条一条的通过结果集中的数据作为过滤条件到下一张表中查询数据，最后合并结果， （for循环套for循环）
left join ：左连接，左边的表即为驱动表
right join ： 右连接，右边的表即为驱动表
inner join ：由]]></description><category></category></item><item><title><![CDATA[慢查询的优化思路]]></title><link>https://blog.youkuaiyun.com/Triple_kill/article/details/107390217</link><guid>https://blog.youkuaiyun.com/Triple_kill/article/details/107390217</guid><author>Triple_kill</author><pubDate>Thu, 16 Jul 2020 18:48:56 +0800</pubDate><description><![CDATA[1：从explain入手
2：连接查询时，用小结果集驱动大结果集
3：尽可能在索引中完成排序
4：不要用select * ，只取需要的列
5：仅适用有效的过滤条件
6：尽可能的避免复杂的jion和子查询， 尽量不要超过3张表join, 复杂的逻辑分布操作可能更好
7：小心适用order by, group by, distinct ，  这三个语句有个共同的特点就是 需要排序，distinct内部是分组，这三个语句的条件尽量走索引，就不需要额外的缓冲区或者临时文件来进行排序、分组
8：合理的设计并利用索引
]]></description><category></category></item></channel></rss>