<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[小小史莱姆的博客]]></title><description><![CDATA[new Object()]]></description><link>https://blog.youkuaiyun.com/m0_37872413</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; m0_37872413]]></copyright><item><title><![CDATA[线程池ThreadPoolExecutor源码分析二(ReentrantLock)]]></title><link>https://blog.youkuaiyun.com/m0_37872413/article/details/122029438</link><guid>https://blog.youkuaiyun.com/m0_37872413/article/details/122029438</guid><author>m0_37872413</author><pubDate>Sun, 26 Dec 2021 17:32:45 +0800</pubDate><description><![CDATA[可重入锁，锁如其名，可以重复进入：当一个线程事先拥有了锁之后，后续该线程还可以再一次拥有该锁。

1.1Syn内部抽象类


]]></description><category></category></item><item><title><![CDATA[线程池ThreadPoolExecutor源码分析一(AbstractQueuedSynchronizer)]]></title><link>https://blog.youkuaiyun.com/m0_37872413/article/details/121896415</link><guid>https://blog.youkuaiyun.com/m0_37872413/article/details/121896415</guid><author>m0_37872413</author><pubDate>Sun, 19 Dec 2021 17:59:07 +0800</pubDate><description><![CDATA[关于可重入锁的顶层抽象类的结构分析
]]></description><category></category></item><item><title><![CDATA[Java三种for循环的性能分析]]></title><link>https://blog.youkuaiyun.com/m0_37872413/article/details/115953735</link><guid>https://blog.youkuaiyun.com/m0_37872413/article/details/115953735</guid><author>m0_37872413</author><pubDate>Thu, 22 Apr 2021 00:52:56 +0800</pubDate><description><![CDATA[随机读取的情况下，数组结构优于链表结构；从头遍历的情况下，普通for循环只适用于数组结构，而迭代器根据实现不同，数组结构和链表结构都选取了效率高的方式遍历，增强型for循环类比迭代器。]]></description><category></category></item><item><title><![CDATA[图文并茂——从零开始使用Webstorm创建vue.js项目]]></title><link>https://blog.youkuaiyun.com/m0_37872413/article/details/115743213</link><guid>https://blog.youkuaiyun.com/m0_37872413/article/details/115743213</guid><author>m0_37872413</author><pubDate>Fri, 16 Apr 2021 00:18:01 +0800</pubDate><description><![CDATA[目录

1）安装node.js

2）创建node_global和node_cache文件夹

3）配置NODE_PATH环境变量

4）安装taobao镜像

5）安装webpack

6）全局安装vue脚手架vue-cli

7）使用Webstorm创建vue.js项目

1）安装node.js

进入官网，下载推荐给大部分用户的版本，完成之后执行安装，选择安装目录之后一直next就行，不需要其他操作.

介于之后配置路径的易读性和方便读者对照，这里是笔者安装路径:H:\DevelopeSoft\Nod]]></description><category></category></item><item><title><![CDATA[反编译详解Java枚举类Enum]]></title><link>https://blog.youkuaiyun.com/m0_37872413/article/details/112859297</link><guid>https://blog.youkuaiyun.com/m0_37872413/article/details/112859297</guid><author>m0_37872413</author><pubDate>Wed, 20 Jan 2021 16:32:30 +0800</pubDate><description><![CDATA[从字节码指令分析Java枚举类的运行过程。

目录

一、创建的枚举类

二、反编译字节码

1）getCode()方法分析

2）setCode()方法分析

三、枚举常量给枚举类成员变量赋值过程分析

一、创建的枚举类


public enum ResponseCodeEnum {
    SUCCESS("0000", "success"),
    BUSINESS_EXCEPTION("5000", "wrong");

    private String code;
    private ]]></description><category></category></item><item><title><![CDATA[Java——LocalDateTime]]></title><link>https://blog.youkuaiyun.com/m0_37872413/article/details/111768130</link><guid>https://blog.youkuaiyun.com/m0_37872413/article/details/111768130</guid><author>m0_37872413</author><pubDate>Sat, 26 Dec 2020 21:22:55 +0800</pubDate><description><![CDATA[JAVA8新特性中添加的时间处理类，相比与以前使用的Date和Canlendar类，该类在时间处理上更加的简单方便。下面记录一些常用的方法。

目录

一、获取LocalDateTime类型的时间（静态方法）

1. LocalDateTime.now()

2.LocalDateTime.now(ZoneId zoneId)

3. LocalDateTime.of(int year, int month, int dayOfMonth, int hour, int minute)

4. LocalD.]]></description><category></category></item><item><title><![CDATA[IDEA常用快捷键与设置]]></title><link>https://blog.youkuaiyun.com/m0_37872413/article/details/108876488</link><guid>https://blog.youkuaiyun.com/m0_37872413/article/details/108876488</guid><author>m0_37872413</author><pubDate>Tue, 24 Nov 2020 10:18:48 +0800</pubDate><description><![CDATA[一、设置

二、常用快捷键
]]></description><category></category></item><item><title><![CDATA[MySql运行机制原理和架构]]></title><link>https://blog.youkuaiyun.com/m0_37872413/article/details/106966384</link><guid>https://blog.youkuaiyun.com/m0_37872413/article/details/106966384</guid><author>m0_37872413</author><pubDate>Fri, 26 Jun 2020 11:15:38 +0800</pubDate><description><![CDATA[原文地址：MySQL运行机制原理&amp;架构

主要补充了一些事务隔离级别会带来的问题以及可以避免什么问题，还有就是MYSQL内部优化语法树的规则。

一、MySQL知识普及

MySQL是一个开放源代码的关系数据库管理系统。

MySQL架构可以在多种不同场景中应用并发挥良好作用。主要体现在存储引擎的架构上，插件式的存储引擎架构将查询处理和其它的系统任务以及数据的存储提取相分离。

二、MySQL逻辑架构



1.Connectors

MySQL首先是一个网络程序，其在TCP之上定义了自己的应用层协]]></description><category></category></item><item><title><![CDATA[SpringBoot远程调用响应体为乱码问题]]></title><link>https://blog.youkuaiyun.com/m0_37872413/article/details/99876625</link><guid>https://blog.youkuaiyun.com/m0_37872413/article/details/99876625</guid><author>m0_37872413</author><pubDate>Tue, 20 Aug 2019 19:48:47 +0800</pubDate><description><![CDATA[远程调用第三方接口响应体中文乱码问题解决

背景：基于SpringCloud、SpringBoot的项目，使用RestTemplate进行远程调用第三方接口

问题：使用restTemplate调用第三方接口（restTemplate.postForEntity()，注意是post请求），接收到的json格式响应体中文出现乱码，但是第三方接...]]></description><category></category></item><item><title><![CDATA[new String(xx)和string = xxx的区别]]></title><link>https://blog.youkuaiyun.com/m0_37872413/article/details/93136086</link><guid>https://blog.youkuaiyun.com/m0_37872413/article/details/93136086</guid><author>m0_37872413</author><pubDate>Thu, 20 Jun 2019 21:48:53 +0800</pubDate><description><![CDATA[结论：new String(xxx)会在内存中产生一个新的字符串，即使该字符串已经存在于常量池中，也不会引用已经存在的字符串，会重新生成一个新的字符串，而且重新生成的这个字符串也是不可被引用的（比如，先String a = new String("test"); 再 b = "test"，这时，b并不会引用a的值，a和b是不同的，使用==比较结果为false。）；string = xxx，如果常量...]]></description><category></category></item><item><title><![CDATA[Java字符串String的trim()方法源码解析]]></title><link>https://blog.youkuaiyun.com/m0_37872413/article/details/93134190</link><guid>https://blog.youkuaiyun.com/m0_37872413/article/details/93134190</guid><author>m0_37872413</author><pubDate>Thu, 20 Jun 2019 21:22:25 +0800</pubDate><description><![CDATA[平常判断一个字符串是不是一个空串，通常都会先调用String类的trim()方法，再判断该字符串的长度是不是0，或者调用String的isEmpty方法判断是不是空串（和判断长度等价）。那么，其实trim()方法就是将一个字符串开头连续的空格和结尾连续的空格消除的方法。下面就通过源码了解一下这个方法的逻辑是如何实现的。

首先，贴上trim()方法的源码


    public String t...]]></description><category></category></item><item><title><![CDATA[Springboot自定义配置Mongodb数据源]]></title><link>https://blog.youkuaiyun.com/m0_37872413/article/details/92076185</link><guid>https://blog.youkuaiyun.com/m0_37872413/article/details/92076185</guid><author>m0_37872413</author><pubDate>Sat, 15 Jun 2019 12:41:29 +0800</pubDate><description><![CDATA[该篇文章配置的Mongodb数据源的背景是在多数据源的情况下——已经配置了俩个Mysql的数据源。如果仅仅只需要配置一个mongodb数据源，那么就非常简单，配置文件里面添上mongodb的host,port,database（主机，端口号，数据库名），之后使用Springboot的自动化配置，直接注入MongoTemplate就能够进行操作。

而如果在已经配置了其他数据源的情况下（多数据源都是...]]></description><category></category></item><item><title><![CDATA[Springboot整合Mybatis多数据源配置]]></title><link>https://blog.youkuaiyun.com/m0_37872413/article/details/91352507</link><guid>https://blog.youkuaiyun.com/m0_37872413/article/details/91352507</guid><author>m0_37872413</author><pubDate>Sun, 09 Jun 2019 14:06:44 +0800</pubDate><description><![CDATA[话不多说，直接进入正题。源码地址：https://github.com/AliceAsuna/KiritoV1.git

目录

一、数据库配置文件

二、配置类

主数据源配置类：

次数据源配置类：

三、项目结构（重点是mapper结构和配置类里的路径对应）

四、启动类——启动类需要取消加载数据源自动配置

五、测试：

controller：

Service：

Mapper：

数据...]]></description><category></category></item><item><title><![CDATA[SpringBoot踩坑之路——Springboot与数据库配置（一）]]></title><link>https://blog.youkuaiyun.com/m0_37872413/article/details/91347083</link><guid>https://blog.youkuaiyun.com/m0_37872413/article/details/91347083</guid><author>m0_37872413</author><pubDate>Sat, 08 Jun 2019 19:57:18 +0800</pubDate><description><![CDATA[如今微服务非常的流行，为了更加了解这一门技术，开始自己的踩坑之路。这里记录了笔者在创建SpringBoot项目中踩过的坑以及如何填坑。

目录

一、链接mysql.jdbc.Driver提示信息

（1）driverClassName: com.mysql.cj.jdbc.Driver

（2）java.sql.SQLException: The server time zone value

...]]></description><category></category></item><item><title><![CDATA[Spring AOP与自定义注解Annotation的使用]]></title><link>https://blog.youkuaiyun.com/m0_37872413/article/details/90745131</link><guid>https://blog.youkuaiyun.com/m0_37872413/article/details/90745131</guid><author>m0_37872413</author><pubDate>Mon, 03 Jun 2019 21:29:19 +0800</pubDate><description><![CDATA[AOP，Spring框架的两大核心之一，又称面向切面编程，通过代理模式，对原有的类进行增强。在Spring框架中，AOP有两种动态代理方式，其一是基于JDK的动态代理，需要代理的类实现某一个接口；其二是基于CGLIB的方式，该方式不需要类实现接口就能进行代理。AOP的应用场景，常见的就是事务的处理和日志的记录，还有权限的认证。（笔者使用AOP的场景：保存所有用户对数据进行的增删改内容等，比如，张三...]]></description><category></category></item><item><title><![CDATA[Java1.8新特性之Stream的使用]]></title><link>https://blog.youkuaiyun.com/m0_37872413/article/details/90706099</link><guid>https://blog.youkuaiyun.com/m0_37872413/article/details/90706099</guid><author>m0_37872413</author><pubDate>Sat, 01 Jun 2019 13:21:08 +0800</pubDate><description><![CDATA[JAVA1.8新特性Stream API的简单使用

list.stream()和list.parallelStream()的区别：stream()，单线程操作，虽然Stream API支持多线程操作集合，但是普通的stream()并没有提供多线程操作，实质上还是串行运行，对于遍历集合来说，它和迭代器，for循...]]></description><category></category></item><item><title><![CDATA[JVM之类加载机制]]></title><link>https://blog.youkuaiyun.com/m0_37872413/article/details/89162429</link><guid>https://blog.youkuaiyun.com/m0_37872413/article/details/89162429</guid><author>m0_37872413</author><pubDate>Wed, 10 Apr 2019 00:12:28 +0800</pubDate><description><![CDATA[在Java中，只有我们创建的类被JVM加载之后，我们才能够使用。

一、类加载时机

类加载过程：

1、加载→2、验证→3、准备→4、解析→5、初始化→6、使用→7、卸载（其中，1，2，3，5，7这几个步骤顺序是确定的，但是解析、使用则没有确定；比如解析阶段不一定必须在初始化之前或者准备之后，它可能出现在初始化之后。）

什么情况下JVM会进行类加载操作？

1、遇到new、getstatic、...]]></description><category></category></item><item><title><![CDATA[JVM之垃圾收集器]]></title><link>https://blog.youkuaiyun.com/m0_37872413/article/details/88906608</link><guid>https://blog.youkuaiyun.com/m0_37872413/article/details/88906608</guid><author>m0_37872413</author><pubDate>Sat, 30 Mar 2019 10:37:56 +0800</pubDate><description><![CDATA[Java的垃圾收集器是区别于C++语言的一个重要特征。在C++里面，内存的分配以及回收，都是程序员可控的，这带来的好处就是，只要你处理得当，内存空间就不会存在大量浪费，但同时，这也是C++程序员最痛苦的地方，每一个内存的分配和回收都需要自己去处理，稍不注意就是删库跑路（手动滑稽）；而针对这一点，Java就完全将内存的分配以及回收交给了JVM，Java程序员只需要在适当的地方创建对象，分配内存；在对...]]></description><category></category></item><item><title><![CDATA[JVM之内存模型以及Java的参数传递]]></title><link>https://blog.youkuaiyun.com/m0_37872413/article/details/88830124</link><guid>https://blog.youkuaiyun.com/m0_37872413/article/details/88830124</guid><author>m0_37872413</author><pubDate>Tue, 26 Mar 2019 22:33:06 +0800</pubDate><description><![CDATA[一、Java的内存模型

关于Java运行时的内存模型，布局，大部分人了解熟悉的就是堆和栈（这也是我们最关心的俩个区域），然而实际上，JVM的内存模型其实远远不止这两块。实际上，JVM讲内存划分为了5大模块：1、方法区。2、堆。3、JVM栈。4、本地方法栈。5、程序计数器（这5大区域里面，线程私有的是3，4，5这三个模块（即线程自己拥有的空间，其他线程不能访问到的），而线程共享（就是所有线程都能够...]]></description><category></category></item><item><title><![CDATA[基于SSM框架的Web项目（三）]]></title><link>https://blog.youkuaiyun.com/m0_37872413/article/details/88605819</link><guid>https://blog.youkuaiyun.com/m0_37872413/article/details/88605819</guid><author>m0_37872413</author><pubDate>Sat, 16 Mar 2019 21:19:08 +0800</pubDate><description><![CDATA[通过之前两篇文章的内容，我们已经可以做到访问我们的首页并实现页面之间的跳转，接下来就是最后一部分，关于jsp页面传数据到后端，以及后端将数据库里面的数据传输给前端。

一、前端JSP页面代码

首页登录页面，注意表单里面输入框的name属性，后端依靠这个属性来获取jsp页面的对应数据（具体获取方式为：request.getParameter(&quot;name&quot;)）


&amp;lt;%@ page conte...]]></description><category></category></item></channel></rss>