<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[qq_41999771的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/qq_41999771</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; qq_41999771]]></copyright><item><title><![CDATA[软件设计师（主要考点！！！）（持续更新）]]></title><link>https://blog.youkuaiyun.com/qq_41999771/article/details/143335740</link><guid>https://blog.youkuaiyun.com/qq_41999771/article/details/143335740</guid><author>qq_41999771</author><pubDate>Tue, 29 Oct 2024 17:10:44 +0800</pubDate><description><![CDATA[软件设计师]]></description><category></category></item><item><title><![CDATA[软考（持续更新）]]></title><link>https://blog.youkuaiyun.com/qq_41999771/article/details/141867942</link><guid>https://blog.youkuaiyun.com/qq_41999771/article/details/141867942</guid><author>qq_41999771</author><pubDate>Tue, 03 Sep 2024 17:47:37 +0800</pubDate><description><![CDATA[按内容访问的存储器，其工作原理就是把数据或数据的某一部分作为关键字，按顺序写入信息，读出时并行的将该关键字与存储器中的每一单元进行比较，找出存储器中所有与关键字相同的数据字，特别适合于信息的检索和更新。：原码是最直观的二进制表示法，它直接根据整数的绝对值进行二进制转换，然后最高位（最左边的位）作为符号位，0表示正数，1表示负数。用原码表示带符号的整数0时，有-0和+0之分，其实就是符号位的变化，+0:0000 0000；：反码是在原码的基础上，对除了符号位以外的所有位进行取反操作（即0变1，1变0），]]></description><category></category></item><item><title><![CDATA[Spring事件（Application Event）使用和源码]]></title><link>https://blog.youkuaiyun.com/qq_41999771/article/details/140710686</link><guid>https://blog.youkuaiyun.com/qq_41999771/article/details/140710686</guid><author>qq_41999771</author><pubDate>Fri, 26 Jul 2024 11:17:21 +0800</pubDate><description><![CDATA[Spring事件（Application Event）使用和源码解析
]]></description><category></category></item><item><title><![CDATA[CompletableFuture详解]]></title><link>https://blog.youkuaiyun.com/qq_41999771/article/details/132047996</link><guid>https://blog.youkuaiyun.com/qq_41999771/article/details/132047996</guid><author>qq_41999771</author><pubDate>Tue, 01 Aug 2023 18:09:45 +0800</pubDate><description><![CDATA[CompletableFuture 类提供了丰富的方法，可以用于各种异步操作，包括执行异步任务、处理异步任务的结果、组合多个异步任务等等。CompletableFuture 提供了方法如 thenCombine(), thenAcceptBoth(), runAfterBoth(), 以及 anyOf() 和 allOf() 等，用于组合多个异步任务的结果。CompletableFuture 提供了一些方法，如 get() 和 join()，用于阻塞等待异步任务的完成并获取结果。]]></description><category></category></item><item><title><![CDATA[限流器 + 定时任务 – 轮询扫描法（环形队列）]]></title><link>https://blog.youkuaiyun.com/qq_41999771/article/details/131774723</link><guid>https://blog.youkuaiyun.com/qq_41999771/article/details/131774723</guid><author>qq_41999771</author><pubDate>Mon, 17 Jul 2023 20:54:02 +0800</pubDate><description><![CDATA[是 Guava 库中的一个类，用于实现限流功能。它基于令牌桶算法，通过控制生成和消费令牌的速率来限制对某个资源的访问频率。主要作用是控制对资源的访问速率，可以限制每秒访问的请求数量或每秒处理的任务数量，以避免资源被过度使用或超负荷运行。的速率参数，可以灵活地控制对资源的访问速率，从而实现对系统的流量控制。]]></description><category></category></item><item><title><![CDATA[TransmittableThreadLocal使用与详解]]></title><link>https://blog.youkuaiyun.com/qq_41999771/article/details/131765487</link><guid>https://blog.youkuaiyun.com/qq_41999771/article/details/131765487</guid><author>qq_41999771</author><pubDate>Mon, 17 Jul 2023 16:08:36 +0800</pubDate><description><![CDATA[TransmittableThreadLocal 是 Alibaba 开源的一个库，旨在解决在多线程环境中正确处理的问题。它提供了一个能够在线程间传递 ThreadLocal 值的特性。]]></description><category></category></item><item><title><![CDATA[ES常用系统命令CRUD命令以及常见问题（持续更新）]]></title><link>https://blog.youkuaiyun.com/qq_41999771/article/details/131674605</link><guid>https://blog.youkuaiyun.com/qq_41999771/article/details/131674605</guid><author>qq_41999771</author><pubDate>Wed, 12 Jul 2023 09:43:36 +0800</pubDate><description><![CDATA[es常用CRUD命令]]></description><category></category></item><item><title><![CDATA[SimplePropertyPreFilter的使用与详解(使用SimplePropertyPreFilter过滤JSON属性)]]></title><link>https://blog.youkuaiyun.com/qq_41999771/article/details/130085910</link><guid>https://blog.youkuaiyun.com/qq_41999771/article/details/130085910</guid><author>qq_41999771</author><pubDate>Tue, 11 Apr 2023 16:47:48 +0800</pubDate><description><![CDATA[SimplePropertyPreFilter的使用与详解(使用SimplePropertyPreFilter过滤JSON属性)]]></description><category></category></item><item><title><![CDATA[Git远程分支与本地分支的合并]]></title><link>https://blog.youkuaiyun.com/qq_41999771/article/details/128949413</link><guid>https://blog.youkuaiyun.com/qq_41999771/article/details/128949413</guid><author>qq_41999771</author><pubDate>Thu, 09 Feb 2023 11:11:50 +0800</pubDate><description><![CDATA[Git远程分支与本地分支的合并]]></description><category></category></item><item><title><![CDATA[模板模式详解-设计模式]]></title><link>https://blog.youkuaiyun.com/qq_41999771/article/details/128480837</link><guid>https://blog.youkuaiyun.com/qq_41999771/article/details/128480837</guid><author>qq_41999771</author><pubDate>Thu, 29 Dec 2022 13:56:32 +0800</pubDate><description><![CDATA[模板模式详解]]></description><category></category></item><item><title><![CDATA[Mybatis choose使用]]></title><link>https://blog.youkuaiyun.com/qq_41999771/article/details/124942100</link><guid>https://blog.youkuaiyun.com/qq_41999771/article/details/124942100</guid><author>qq_41999771</author><pubDate>Tue, 24 May 2022 10:30:01 +0800</pubDate><description><![CDATA[Mybatis的choose类似于java中的switch
具体用法如下：
select *
from table
&lt;where&gt;
	&lt;choose&gt;
	&lt;!-- when类似于Java的case 当有一个分支满足时不再执行其他分支 --&gt;
		&lt;when test = "num == 1"&gt;
			id = 1
		&lt;/when&gt;
		&lt;when test = "num == 2"&gt;
			id = 2
		&lt;/when&gt;]]></description><category></category></item><item><title><![CDATA[Java Collections.emptyList() 方法的使用及注意事项]]></title><link>https://blog.youkuaiyun.com/qq_41999771/article/details/123472667</link><guid>https://blog.youkuaiyun.com/qq_41999771/article/details/123472667</guid><author>qq_41999771</author><pubDate>Mon, 14 Mar 2022 10:19:53 +0800</pubDate><description><![CDATA[https://blog.youkuaiyun.com/zhuzicc/article/details/106277658

]]></description><category></category></item><item><title><![CDATA[在多线程中向ArrayList中add时，出现异常（分析）]]></title><link>https://blog.youkuaiyun.com/qq_41999771/article/details/123430673</link><guid>https://blog.youkuaiyun.com/qq_41999771/article/details/123430673</guid><author>qq_41999771</author><pubDate>Fri, 11 Mar 2022 18:20:57 +0800</pubDate><description><![CDATA[1.业务场景
在业务场景中需要处理一批数据，根据某一字段排序后返回。
由于数据量较大采用多线程同步处理，单线程处理后add到集合中，线程结束后排序，但排序时偶尔会报空指针异常，报错的概率很低。
排查错误时发现使用了ArrayList，问题很明显了，因为ArrayList是线程不安全的，所以在多线程中会出现异常，下面我们来分析一下异常原因。
2.错误分析
    /**
     * Appends the specified element to the end of this list.
     *
 ]]></description><category></category></item><item><title><![CDATA[Java8 中通过 Stream 对列表进行去重]]></title><link>https://blog.youkuaiyun.com/qq_41999771/article/details/123046358</link><guid>https://blog.youkuaiyun.com/qq_41999771/article/details/123046358</guid><author>qq_41999771</author><pubDate>Mon, 21 Feb 2022 14:41:59 +0800</pubDate><description><![CDATA[Java8 中通过 Stream 对列表进行去重
1. Stream 的distinct()方法
distinct()是Java 8 中 Stream 提供的方法，返回的是由该流中不同元素组成的流。distinct()使用 hashCode() 和 eqauls() 方法来获取不同的元素。因此，需要去重的类必须实现 hashCode() 和 equals() 方法。换句话讲，我们可以通过重写定制的 hashCode() 和 equals() 方法来达到某些特殊需求的去重。
distinct() 方法声明如下]]></description><category></category></item><item><title><![CDATA[java8新特性-list使用stream排序(多字段)]]></title><link>https://blog.youkuaiyun.com/qq_41999771/article/details/123045488</link><guid>https://blog.youkuaiyun.com/qq_41999771/article/details/123045488</guid><author>qq_41999771</author><pubDate>Mon, 21 Feb 2022 13:52:11 +0800</pubDate><description><![CDATA[java8新特性 使用stream排序(多字段)
List&lt;类&gt; list; 代表某集合
 
//返回 对象集合以类属性一升序排序
 
list.stream().sorted(Comparator.comparing(类::属性一));
 
//返回 对象集合以类属性一降序排序 注意两种写法
 
list.stream().sorted(Comparator.comparing(类::属性一).reversed());//先以属性一升序,结果进行属性一降序
 
list.stream().so]]></description><category></category></item><item><title><![CDATA[MySQL索引连环18问]]></title><link>https://blog.youkuaiyun.com/qq_41999771/article/details/122594214</link><guid>https://blog.youkuaiyun.com/qq_41999771/article/details/122594214</guid><author>qq_41999771</author><pubDate>Thu, 20 Jan 2022 09:26:18 +0800</pubDate><description><![CDATA[小伙伴们好
今天给大家带来了MySQL索引的常考面试题，看看你能答对多少~

1. 索引是什么？
索引是一种特殊的文件(InnoDB数据表上的索引是表空间的一个组成部分)，它们包含着对数据表里所有记录的引用指针。
索引是一种数据结构。数据库索引，是数据库管理系统中一个排序的数据结构，以协助快速查询、更新数据库表中数据。索引的实现通常使用B树及其变种B+树。更通俗的说，索引就相当于目录。为了方便查找书中的内容，通过对内容建立索引形成目录。而且索引是一个文件，它是要占据物理空间的。
MySQL索引的建立对于My]]></description><category></category></item><item><title><![CDATA[Mybatis莫名自动分页 PageHelper自动分页的问题(已解决）]]></title><link>https://blog.youkuaiyun.com/qq_41999771/article/details/122238232</link><guid>https://blog.youkuaiyun.com/qq_41999771/article/details/122238232</guid><author>qq_41999771</author><pubDate>Fri, 31 Dec 2021 11:13:23 +0800</pubDate><description><![CDATA[Mybatis莫名自动分页 PageHelper自动分页的问题(已解决）
业务场景：
接收到分页参数，需要先查出数据后进行数据过滤，之后手动分页返回。
问题：
在用Mybatis进行查询的时候，没有使用PageHepler.startPage，但是查询的sql自动查询了count()，而且进行了limit。入参中包含了pageNum和pageSize且都不为空。

源码排查原因：
找到PageHelper的处理逻辑 PageObjectUtil

可以看到它会去获取参数中是否有pageNum和pageSiz]]></description><category></category></item><item><title><![CDATA[HashMap的put方法解析及源码]]></title><link>https://blog.youkuaiyun.com/qq_41999771/article/details/120830596</link><guid>https://blog.youkuaiyun.com/qq_41999771/article/details/120830596</guid><author>qq_41999771</author><pubDate>Mon, 18 Oct 2021 17:29:56 +0800</pubDate><description><![CDATA[先上图

①.判断键值对数组table[i]是否为空或为null,否则执行resize()进行扩容;
②.根据键值key计算hash值得到插入的数组索引i，如果table[i]==null，直接新建节点添加，转向⑥)，如果table[i]不为空，转向③;
③.判断table[i]的首个元素是否和key一样，如果相同直接覆盖value，否则转向④，这里的相同指的是hashCode以及equals;
④.判断table[i]是否为treeNode，即table[i]是否是红黑树，如果是红黑树，则直接在树中插入键]]></description><category></category></item><item><title><![CDATA[SpringBoot常用注解]]></title><link>https://blog.youkuaiyun.com/qq_41999771/article/details/111031220</link><guid>https://blog.youkuaiyun.com/qq_41999771/article/details/111031220</guid><author>qq_41999771</author><pubDate>Fri, 11 Dec 2020 14:59:16 +0800</pubDate><description><![CDATA[SpringBootApplication
用在SpringBoot项目的启动程序上，整个SpringBoot只有且必须有这一个这样的注解，是项目的入口程序
@Controller
是让URL请求返回具体的页面，这个注解在类头上添加
@RequestMapping("**")
在Controller控制器中的方法头使用
@RestController
通过@RestController注解后，其方法内再配合@RequestMapping，即可返回Json格式的数据
@RequestParam(value=“]]></description><category></category></item><item><title><![CDATA[使用Response下载文件]]></title><link>https://blog.youkuaiyun.com/qq_41999771/article/details/110850981</link><guid>https://blog.youkuaiyun.com/qq_41999771/article/details/110850981</guid><author>qq_41999771</author><pubDate>Tue, 08 Dec 2020 11:48:47 +0800</pubDate><description><![CDATA[本地下载
 		//1.要获取下载文件的路径
        String realPath = "D:\\Project\\response\\target\\classes\\志.png";
        System.out.println("下载文件的路径:"+realPath);
        //2.下载的文件名是啥？
        String fileName = realPath.substring(realPath.lastIndexOf("\\") + 1);
        S]]></description><category></category></item></channel></rss>