<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[sww_ang的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/sww_ang</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; sww_ang]]></copyright><item><title><![CDATA[mysql不同情况下加锁类型实验 record lock 和 gap lock]]></title><link>https://blog.youkuaiyun.com/sww_ang/article/details/123328678</link><guid>https://blog.youkuaiyun.com/sww_ang/article/details/123328678</guid><author>sww_ang</author><pubDate>Mon, 07 Mar 2022 15:48:25 +0800</pubDate><description><![CDATA[准备数据
注：下面测试数据所在环境，数据库的事务隔离级别都是RR级别
CREATE TABLE `gap_record` (
  `id` int unsigned NOT NULL AUTO_INCREMENT,
  `bk` int DEFAULT NULL,
  PRIMARY KEY (`id`) USING BTREE,
  KEY `gap_record_bk_IDX` (`bk`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHA]]></description><category></category></item><item><title><![CDATA[ThreadPoolExecutor的prestartAllCoreThreads() 预启动所有核心线程所导致的一些奇怪的问题]]></title><link>https://blog.youkuaiyun.com/sww_ang/article/details/123052465</link><guid>https://blog.youkuaiyun.com/sww_ang/article/details/123052465</guid><author>sww_ang</author><pubDate>Mon, 21 Feb 2022 17:53:37 +0800</pubDate><description><![CDATA[请移步github

]]></description><category></category></item><item><title><![CDATA[Thread.sleep()的InterruptedException处理]]></title><link>https://blog.youkuaiyun.com/sww_ang/article/details/106570248</link><guid>https://blog.youkuaiyun.com/sww_ang/article/details/106570248</guid><author>sww_ang</author><pubDate>Fri, 05 Jun 2020 14:43:19 +0800</pubDate><description><![CDATA[public class OOMTest {
    public static void main(String[] args) {
        Thread thread = new Thread(new Runnable() {
            @Override
            public void run() {
                try {
                    //1.sleep之前被interrupt   则 sleep方法抛出异常，再.]]></description><category></category></item><item><title><![CDATA[mysql中的分组后排序并取topn（MySQL中的自定义变量和窗口函数）]]></title><link>https://blog.youkuaiyun.com/sww_ang/article/details/104536058</link><guid>https://blog.youkuaiyun.com/sww_ang/article/details/104536058</guid><author>sww_ang</author><pubDate>Thu, 27 Feb 2020 15:42:19 +0800</pubDate><description><![CDATA[此文章仅作为学习记录用。
项目中遇到了分组排序，解决问题过程中发现了一些问题，在这里做出总结。
数据样例：

现在的需求是要找出每组score最低的2个。如下所示结果：

首先我写了如下sql：
SELECT name1,score FROM dataview_similar c
WHERE (
    SELECT count(*) FROM dataview_similar
    WHERE...]]></description><category></category></item><item><title><![CDATA[leetcode动态规划问题：找零钱最少硬币数]]></title><link>https://blog.youkuaiyun.com/sww_ang/article/details/103487143</link><guid>https://blog.youkuaiyun.com/sww_ang/article/details/103487143</guid><author>sww_ang</author><pubDate>Wed, 11 Dec 2019 10:31:20 +0800</pubDate><description><![CDATA[leetcode动态规划问题：找零钱最少硬币数
下面通过对斐波那契数列和这道凑零钱问题详解动态规划。如果只想看本题的答案，请直接翻到最后查看。
问题描述：

给定不同面额的硬币 coins 和一个总金额 amount。编写一个函数来计算可以凑成总金额所需的最少的硬币个数。如果没有任何一种硬币组合能组成总金额，返回 -1。

示例 1:

输入: coins = [1, 2, 5], amount ...]]></description><category></category></item><item><title><![CDATA[高效取模运算之按位与（&）运算与扰动函数（HashMap源码简析）]]></title><link>https://blog.youkuaiyun.com/sww_ang/article/details/93380893</link><guid>https://blog.youkuaiyun.com/sww_ang/article/details/93380893</guid><author>sww_ang</author><pubDate>Mon, 24 Jun 2019 08:38:14 +0800</pubDate><description><![CDATA[高效取模运算（&amp;）与扰动函数
前一段时间听到有人问HashMap是用链表数组还是用红黑树数组实现的，所以博主今天阅读了一下HashMap的源码。
在阅读HashMap源码时，发现了一个用的很少的表达式，经过网上查阅资料还有一些计算机组成原理的一些相关知识搞懂了这个表达式意义和优点。
接下来我来分享一下我追源代码的过程和对HashMap源码以及这个高效取模运算的理解。
1.测试的准备工作
因...]]></description><category></category></item><item><title><![CDATA[LeetCode：最长公共前缀]]></title><link>https://blog.youkuaiyun.com/sww_ang/article/details/90518821</link><guid>https://blog.youkuaiyun.com/sww_ang/article/details/90518821</guid><author>sww_ang</author><pubDate>Fri, 24 May 2019 16:31:33 +0800</pubDate><description><![CDATA[题目取自LeetCode
题目描述
编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀，返回空字符串 “”。
示例 1:
输入: [“flower”,“flow”,“flight”]
输出: “fl”
示例 2:
输入: [“dog”,“racecar”,“car”]
输出: “”
解释: 输入不存在公共前缀。
说明:
所有输入只包含小写字母 a-z 。
解决代码：
class S...]]></description><category></category></item><item><title><![CDATA[LeetCode：最后一个单词的长度]]></title><link>https://blog.youkuaiyun.com/sww_ang/article/details/90517749</link><guid>https://blog.youkuaiyun.com/sww_ang/article/details/90517749</guid><author>sww_ang</author><pubDate>Fri, 24 May 2019 15:51:20 +0800</pubDate><description><![CDATA[题目取自LeetCode
题目描述
给定一个仅包含大小写字母和空格 ’ ’ 的字符串，返回其最后一个单词的长度。
如果不存在最后一个单词，请返回 0 。
说明：一个单词是指由字母组成，但不包含任何空格的字符串。
示例:
输入: “Hello World”
输出: 5
解决代码：
class Solution {
    public int lengthOfLastWord(String s) {...]]></description><category></category></item><item><title><![CDATA[数据结构面试必问之反转链表]]></title><link>https://blog.youkuaiyun.com/sww_ang/article/details/90516727</link><guid>https://blog.youkuaiyun.com/sww_ang/article/details/90516727</guid><author>sww_ang</author><pubDate>Fri, 24 May 2019 15:23:45 +0800</pubDate><description><![CDATA[题目取自LeetCode
题目描述：
反转一个单链表。
示例:
输入: 1-&gt;2-&gt;3-&gt;4-&gt;5-&gt;NULL
输出: 5-&gt;4-&gt;3-&gt;2-&gt;1-&gt;NULL
迭代方法：
public class ListNode {
    int val;
    ListNode next;
    ListNode(int x) { val = ...]]></description><category></category></item><item><title><![CDATA[简说动态代理设计模式（Spring）]]></title><link>https://blog.youkuaiyun.com/sww_ang/article/details/90514434</link><guid>https://blog.youkuaiyun.com/sww_ang/article/details/90514434</guid><author>sww_ang</author><pubDate>Fri, 24 May 2019 13:06:47 +0800</pubDate><description><![CDATA[动态代理设计模式简介
想要了解动态代理必须先了解代理设计模式。
在我们完成业务层的代码时，我们总是会分为：
业务核心代码和业务辅助性的代码；
业务核心代码：缺少了它，就不能完成业务操作，他是我们完成业务的最基础的代码，不可缺少。
辅助性代码：例如我们的事务控制，生成日志，性能测试代码等，缺少了这些代码，我们的业务仍然可以完成。
如果我们将每个业务逻辑都添加这些辅助性代码，这就造成了代码冗余，并且后...]]></description><category></category></item></channel></rss>