<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[我不想学习但是必须学习]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/weixin_45801539</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; weixin_45801539]]></copyright><item><title><![CDATA[Mybatis-Puls(MP)]]></title><link>https://blog.youkuaiyun.com/weixin_45801539/article/details/121216407</link><guid>https://blog.youkuaiyun.com/weixin_45801539/article/details/121216407</guid><author>weixin_45801539</author><pubDate>Wed, 10 Nov 2021 17:30:23 +0800</pubDate><description><![CDATA[2.MP的快速CRUD
首先安装我们的mybatisx插件；安装之后重启我们的IDEA；
基于SpringBoot创建一个MP的demo如下：
1.1倒入我们需要的依赖
       &lt;dependency&gt;
            &lt;groupId&gt;mysql&lt;/groupId&gt;
            &lt;artifactId&gt;mysql-connector-java&lt;/artifactId&gt;
            &lt;scope&gt;r]]></description><category></category></item><item><title><![CDATA[SpringBoot中使用了@Service等注解没有小叶子出现的解决方法]]></title><link>https://blog.youkuaiyun.com/weixin_45801539/article/details/121222748</link><guid>https://blog.youkuaiyun.com/weixin_45801539/article/details/121222748</guid><author>weixin_45801539</author><pubDate>Tue, 09 Nov 2021 10:30:42 +0800</pubDate><description><![CDATA[在有些时候我们创建一个SpringBoot项目之后，会发现当使用@Service注解时，旁边没有小叶子出现，也就是说无法注入这个Bean；
首先看代码目录：

此时启动类与我们的其他的类都在同一级别：

这是很明显没有小叶子，也就是无法注入；
解决的办法就是将启动类放到上面“xinan”包下，而不是xinan子包

此时小叶子也就出来了，表示可以注入了！


...]]></description><category></category></item><item><title><![CDATA[Jmeter学习（一）]]></title><link>https://blog.youkuaiyun.com/weixin_45801539/article/details/119885632</link><guid>https://blog.youkuaiyun.com/weixin_45801539/article/details/119885632</guid><author>weixin_45801539</author><pubDate>Tue, 24 Aug 2021 15:18:24 +0800</pubDate><description><![CDATA[一：JMeter初识
官网地址

下载压缩包之后，在bin目录下有 一个ApacheJMeter，双击就可以打开我们的JMeter软件；需要java8以上的环境。
可以设置为中文！
测试案列：
测试连接
一：get请求的测试
1.所有的http接口请求的测试都是在线程组里测试：



这里的参数添加是直接加在参数里的，因为get方式后面可以添加参数！
当运行之后是查看不了结果的，此时应该需要通过监听器再添加一个查看结果树！


此时就可以查看结果，除了常用的Text，还有一些其他的！比如Json与正则！

]]></description><category></category></item><item><title><![CDATA[设计模式-工厂模式]]></title><link>https://blog.youkuaiyun.com/weixin_45801539/article/details/118786402</link><guid>https://blog.youkuaiyun.com/weixin_45801539/article/details/118786402</guid><author>weixin_45801539</author><pubDate>Fri, 16 Jul 2021 11:21:17 +0800</pubDate><description><![CDATA[定义
它提供了一种创建对象的最佳方式。在工厂模式中，我们在创建对象时不会对客户端暴露创建逻辑，并且是通过使用一个共同的接口来指向新创建的对象。实现了创建者和调用者分离，工厂模式分为简单工厂、工厂方法、抽象工厂模式。
工厂模式的优点

工厂模式是我们最常用的实例化对象模式了，是用工厂方法代替new操作的一种模式。
利用工厂模式可以降低程序的耦合性，为后期的维护修改提供了很大的便利。
将选择实现类、创建对象统一管理和控制。从而将调用者跟我们的实现类解耦。

Spring开发中使用的工厂模式
1.Spring I]]></description><category></category></item><item><title><![CDATA[Redis概述与安装]]></title><link>https://blog.youkuaiyun.com/weixin_45801539/article/details/116913377</link><guid>https://blog.youkuaiyun.com/weixin_45801539/article/details/116913377</guid><author>weixin_45801539</author><pubDate>Wed, 19 May 2021 15:51:13 +0800</pubDate><description><![CDATA[NoSQL数据库
NoSQL(NoSQL = Not Only sQL )，意即“不仅仅是sQL”，泛指非关系型的数据库。“NoSQL不依赖业务逻辑方式存储，而以简单的 key-value模式存储。因此大大的增加了数据库的扩展能力。

不遵循SQL标准。
不支持ACID
远超于SQL的性能。

什么是redis（属于NoSQL）

Redis是一个开源的key-value存储系统。
和Memcached类似，它支持存储的value类型相对更多，包括string(字符串)，list(链表)、set(集合)、z]]></description><category></category></item><item><title><![CDATA[JUC（10）：CAS、各种锁的理解]]></title><link>https://blog.youkuaiyun.com/weixin_45801539/article/details/112318276</link><guid>https://blog.youkuaiyun.com/weixin_45801539/article/details/112318276</guid><author>weixin_45801539</author><pubDate>Thu, 07 Jan 2021 17:27:04 +0800</pubDate><description><![CDATA[CAS(是一种 自旋锁)
什么是CAS？
CAS，Compare And Swap，释义比较并替换。CAS 操作包含三个操作数 —— 内存位置（V）、预期原值（A）和新值(B)。 如果内存位置的值与预期原值相匹配，那么处理器会自动将该位置值更新为新值 。否则，处理器不做任何操作。无论哪种情况，它都会在 CAS 指令之前返回该 位置的值。CAS也称为自旋锁，在一个（死）循环【for（;;）】里不断进行CAS操作，直到成功为止（自旋操作）,实际上，CAS也是一种乐观锁。
悲观锁和乐观锁

悲观锁：具有强烈的独占]]></description><category></category></item><item><title><![CDATA[JUC（9）：异步回调、JMM、Volatile、DCL懒汉式！]]></title><link>https://blog.youkuaiyun.com/weixin_45801539/article/details/112302945</link><guid>https://blog.youkuaiyun.com/weixin_45801539/article/details/112302945</guid><author>weixin_45801539</author><pubDate>Thu, 07 Jan 2021 15:58:01 +0800</pubDate><description><![CDATA[异步回调
同步API：调用方在调用某个方法后，等待被调用方返回结果；调用方在取得被调用方的返回值后，再继续运行。调用方顺序执行，同步等待被调用方的返回值，这就是阻塞式调用。
异步API：调用方在调用某个方法后，直接返回，不需要等待被调用方返回结果；被调用方开启一个线程处理任务，调用方可以同时去处理其他工作。调用方和被调用方是异步的，这就是非阻塞式调用。
没有返回值的异步回调：
 public static void main(String[] args) throws ExecutionException,]]></description><category></category></item><item><title><![CDATA[JUC（7）：线程池（重点）3大方法、7大策略、4中拒绝策略]]></title><link>https://blog.youkuaiyun.com/weixin_45801539/article/details/112260468</link><guid>https://blog.youkuaiyun.com/weixin_45801539/article/details/112260468</guid><author>weixin_45801539</author><pubDate>Wed, 06 Jan 2021 15:23:15 +0800</pubDate><description><![CDATA[池化技术
程序运行的本质：程序一旦运行，就会占用系统资源！优化资源的使用！
什么是池化技术
池化技术 (Pool) 是一种很常见的编程技巧，在请求量大时能明显优化应用性能，降低系统频繁建连的资源开销。我们日常工作中常见的有数据库连接池、线程池、对象池等，它们的特点都是将 “昂贵的”、“费时的” 的资源维护在一个特定的 “池子” 中，规定其最小连接数、最大连接数、阻塞队列等配置，方便进行统一管理和复用，通常还会附带一些探活机制、强制回收、监控一类的配套功能。
线程池的好处

降低资源的消耗
提高响应的速度
方]]></description><category></category></item><item><title><![CDATA[JUC（6）：读写锁；阻塞队列]]></title><link>https://blog.youkuaiyun.com/weixin_45801539/article/details/112218662</link><guid>https://blog.youkuaiyun.com/weixin_45801539/article/details/112218662</guid><author>weixin_45801539</author><pubDate>Wed, 06 Jan 2021 10:26:25 +0800</pubDate><description><![CDATA[ReadWriteLock（读写锁）
通过查看文档可以知道它的实现类只有一个：ReentrantReadWriteLock（重入可读写锁！）

模拟一个缓存的例子：
  /**
     * 自定义一个缓存！
     */
    class Mychche {
        private volatile Map&lt;String, Object&gt; map = new HashMap&lt;&gt;();

        //存 写；这里保证只有一个线程可以存
        public]]></description><category></category></item><item><title><![CDATA[JUC（5）：常用的辅助类（必须掌握）]]></title><link>https://blog.youkuaiyun.com/weixin_45801539/article/details/112188543</link><guid>https://blog.youkuaiyun.com/weixin_45801539/article/details/112188543</guid><author>weixin_45801539</author><pubDate>Mon, 04 Jan 2021 18:54:33 +0800</pubDate><description><![CDATA[Callable
Callable学习
三个常用的辅助类
CountDownLatch（一个减法计数器！）
//计数器
public class CountDownLatchDemo {
    public static void main(String[] args) throws InterruptedException {
        //总数是6
        CountDownLatch cd = new CountDownLatch(6);
        for (int i = 1;]]></description><category></category></item><item><title><![CDATA[JUC（4）：集合类不安全]]></title><link>https://blog.youkuaiyun.com/weixin_45801539/article/details/112178181</link><guid>https://blog.youkuaiyun.com/weixin_45801539/article/details/112178181</guid><author>weixin_45801539</author><pubDate>Mon, 04 Jan 2021 16:31:03 +0800</pubDate><description><![CDATA[List不安全
在之前我们写list相关的代码时，大部分都是用的单线程，所以不存在线程安全问题！
public class ListTest {
    public static void main(String[] args) {
    //并发下 ArrayList 不安全
    List&lt;String&gt; list = new ArrayList&lt;&gt;();
    for (int i =1 ;i &lt;=100 ;i++){
        new Thread(()-]]></description><category></category></item><item><title><![CDATA[JUC（3）：8锁问题]]></title><link>https://blog.youkuaiyun.com/weixin_45801539/article/details/112023783</link><guid>https://blog.youkuaiyun.com/weixin_45801539/article/details/112023783</guid><author>weixin_45801539</author><pubDate>Mon, 04 Jan 2021 14:35:50 +0800</pubDate><description><![CDATA[八锁现象理解锁
1.线程执行顺序

顺序执行：先调用的先执行；
随机执行：没有规律，与计算机硬件资源有关，哪个线程先得到资源就先执行，各个线程之间互不干扰。

8锁现象
1.标准情况下，两个线程的执行顺序，先打电话还是先发短信？先短信、再电话，中间间隔1s。
public class Test01 {
    public static void main(String[] args) {
        phone p = new phone();
        new Thread(()-&gt;{
]]></description><category></category></item><item><title><![CDATA[JUC（2）生产者消费者问题：Synchronized和JUC版本]]></title><link>https://blog.youkuaiyun.com/weixin_45801539/article/details/112008370</link><guid>https://blog.youkuaiyun.com/weixin_45801539/article/details/112008370</guid><author>weixin_45801539</author><pubDate>Thu, 31 Dec 2020 15:57:25 +0800</pubDate><description><![CDATA[生产者消费者问题
Synchronized 版本 wait  notify

/**
 * 线程之间的通信问题:走产者和消费者问题.等待唤醒，通知唤醒！
 * 线程交替执行！ A B两个线程操作同一个变量；当A num+1时，必须告知B num-1
 */
public class ProviderAndConsumer {
    public static void main(String[] args) {
        Data data = new Data();
        new Thr]]></description><category></category></item><item><title><![CDATA[JUC（1）基本知识及Lock锁]]></title><link>https://blog.youkuaiyun.com/weixin_45801539/article/details/111992794</link><guid>https://blog.youkuaiyun.com/weixin_45801539/article/details/111992794</guid><author>weixin_45801539</author><pubDate>Thu, 31 Dec 2020 11:45:53 +0800</pubDate><description><![CDATA[什么是JUC
JUC是java.util.concurrent的简写。在jdk官方手册中可以看到juc相关的jar包有三个。
用中文概括一下，JUC的意思就是java并发编程工具包！

回顾线程和进程

进程：一个运行中的程序！是操作系统进行资源分配和调度的基本单位!一个进程可以包含多个线程；java默认有两个线程：main线程；GC线程！
线程：线程是操作系统中进行运算调度的最小单位！

java可以开启线程吗？
不可以；因为线程的开启是调用的本地方法start0()，其底层使用的是C++；java无法直]]></description><category></category></item><item><title><![CDATA[深入解读HashMap]]></title><link>https://blog.youkuaiyun.com/weixin_45801539/article/details/111604844</link><guid>https://blog.youkuaiyun.com/weixin_45801539/article/details/111604844</guid><author>weixin_45801539</author><pubDate>Fri, 25 Dec 2020 09:27:09 +0800</pubDate><description><![CDATA[HashMap集合简介
HashMap基于哈希表的Map接口实现，是以key-value存储形式存在，即主要用来存放键值对。HashMap的实现不是同步的，这意味着它不是线程安全的。它的key、value都可以为null。此外，HashMap中的映射不是有序的。

JDK1.8之前HashMap由数组+链表组成的，数组是HashMap的主体，链表则是主要为了解决哈希冲突(两个对象调用的hashCode方法计算的哈希码值—致导致计算的数组索引值相同)而存在的(“拉链法"解决冲突)JDK1.8以后在解决哈希冲突]]></description><category></category></item><item><title><![CDATA[力扣：探索初级算法——数组篇]]></title><link>https://blog.youkuaiyun.com/weixin_45801539/article/details/111311476</link><guid>https://blog.youkuaiyun.com/weixin_45801539/article/details/111311476</guid><author>weixin_45801539</author><pubDate>Thu, 17 Dec 2020 16:00:04 +0800</pubDate><description><![CDATA[提示：都是自己做的，不一定是最优的解决方法！
删除排序数组中的重复项
思路分析：运用快慢指针，初始的时候二者的位置一样，当快指针指向的内容和慢指针指向的内容不一样的时候，慢指针移动，覆盖此时快指针的值。重复上面的过程即可！如果题目中不需要原地的话，也可以使用set方法！
class Solution {
    public int removeDuplicates(int[] nums) {
        if(nums==null||nums.length==0){
            retur]]></description><category></category></item><item><title><![CDATA[JVM简述]]></title><link>https://blog.youkuaiyun.com/weixin_45801539/article/details/111191903</link><guid>https://blog.youkuaiyun.com/weixin_45801539/article/details/111191903</guid><author>weixin_45801539</author><pubDate>Wed, 16 Dec 2020 16:49:37 +0800</pubDate><description><![CDATA[JVM的位置

JVM是运行在操作系统之上的，与硬件没有直接的交互，但是可以调用底层的硬件，用JIN （Java本地接口调用底层硬件接口，了解下就好，已经过时了）
JVM的体系结构

其中，栈、本地方法栈以及程序计数器是不会有GC（垃圾回收）的！而我们的调优基本都是在方法区和堆，大部分都是堆。
类加载器
概念
负责加载class文件，class文件 在文件开头有特定的文件标识 ，将class文件字节码内容加载到内存中，并将这些内容转换成方法区中的运行时数据结构并且ClassLoader只负责class文件的]]></description><category></category></item><item><title><![CDATA[Spring Cloud（五）config分布式配置]]></title><link>https://blog.youkuaiyun.com/weixin_45801539/article/details/111150717</link><guid>https://blog.youkuaiyun.com/weixin_45801539/article/details/111150717</guid><author>weixin_45801539</author><pubDate>Mon, 14 Dec 2020 11:44:53 +0800</pubDate><description><![CDATA[分布式系统系统面临的配置文件的问题

微服务意味着要将单体应用中的业务拆分成一个个子服务，每个服务的粒度相对较小，因此系统中会出现大量的服务，由于每个服务都需要配置必要的配置信息才能运行，所以一套集中的，动态的配置管理设施必不可少，
SpringCloud提供了ConfigServer来解决这个问题，我们每一个微服务自己带有一个application.yaml，那上百个配置文件修改起来，那工作量是相当的大。

什么是SpringCloud config 分布式配置中心


Spring Cloud Conf]]></description><category></category></item><item><title><![CDATA[Spring Cloud（四）服务熔断、服务降级、流监控、路由网关]]></title><link>https://blog.youkuaiyun.com/weixin_45801539/article/details/111036561</link><guid>https://blog.youkuaiyun.com/weixin_45801539/article/details/111036561</guid><author>weixin_45801539</author><pubDate>Mon, 14 Dec 2020 09:58:45 +0800</pubDate><description><![CDATA[分布式系统面临的问题
服务雪崩
　　多个微服务之间调用的时候，假设微服务A调用微服务B和微服务C，微服务B和微服务C又调用其他的微服务，这就是所谓的“扇出"、如果扇出的链路上某个微服务的调用响应时间过长或者不可用，对微服务A的调用就会占用越来越多的系统资源，进而引起系统崩溃，所谓的“雪崩效应"。
　　对于高流量的应用来说，单一的后端依赖可能会导致所有服务器上的所有资源都在几秒中内饱和。比失败更糟糕的是，这些应用程序还可能导致服务之间的延迟增加，备份队列，线程和其他系统资源紧张，导致整个系统发生更多的级联故障]]></description><category></category></item><item><title><![CDATA[Spring Cloud（三）CAP原则、负载均衡及Ribbon、Feign]]></title><link>https://blog.youkuaiyun.com/weixin_45801539/article/details/110916498</link><guid>https://blog.youkuaiyun.com/weixin_45801539/article/details/110916498</guid><author>weixin_45801539</author><pubDate>Wed, 09 Dec 2020 17:06:04 +0800</pubDate><description><![CDATA[1.CAP原则
CAP原则又称CAP定理，指的是在一个分布式系统中，一致性（Consistency）、可用性（Availability）、分区容错性（Partition tolerance）。CAP 原则指的是，这三个要素最多只能同时实现两点，不可能三者兼顾

C（Consistency）强一致性：在分布式系统中的所有数据备份，在同一时刻是否同样的值。（等同于所有节点访问同一份最新的数据副本）
A(Availability）可用性：在集群中一部分节点故障后，集群整体是否还能响应客户端的读写请求。（对数据更新]]></description><category></category></item></channel></rss>