<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[qq_41587409的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/qq_41587409</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; qq_41587409]]></copyright><item><title><![CDATA[Redis自定义RedisTemplate与封装java中Redis操作]]></title><link>https://blog.youkuaiyun.com/qq_41587409/article/details/106413616</link><guid>https://blog.youkuaiyun.com/qq_41587409/article/details/106413616</guid><author>qq_41587409</author><pubDate>Thu, 28 May 2020 22:07:18 +0800</pubDate><description><![CDATA[前话

]]></description><category></category></item><item><title><![CDATA[springboot单个文件上传及解决图片上传后需要重启服务器才能刷新图片]]></title><link>https://blog.youkuaiyun.com/qq_41587409/article/details/106061461</link><guid>https://blog.youkuaiyun.com/qq_41587409/article/details/106061461</guid><author>qq_41587409</author><pubDate>Mon, 11 May 2020 20:46:13 +0800</pubDate><description><![CDATA[前话
前面逛论坛发现很多人写springboot文件上传遇到很多bug，索性我也来写个简单的springboot文件上传小demo。直接上代码吧。
upload.html
&lt;!DOCTYPE html&gt;
&lt;html lang="en"&gt;
&lt;head&gt;
    &lt;meta charset="UTF-8"&gt;
    &lt;title&gt;文件上传&lt;/title&gt;

&lt;/head&gt;
&lt;body&gt;
&lt;form action]]></description><category></category></item><item><title><![CDATA[BTree概念及RBTree实现（JAVA）]]></title><link>https://blog.youkuaiyun.com/qq_41587409/article/details/105739433</link><guid>https://blog.youkuaiyun.com/qq_41587409/article/details/105739433</guid><author>qq_41587409</author><pubDate>Sat, 25 Apr 2020 15:12:05 +0800</pubDate><description><![CDATA[了解一下B树
在实现红黑树之前先了解一下B树，因为红黑树的一些操作的实现和B树关系密切。
B树概念：
m阶b树的性质（m&gt;=2）
ps:b树里面只有叶子节点和度&gt;=2的节点
b树的搜索
b树的添加
m阶b树添加上溢
当一个节点的元素个数等于m时会造成添加上溢
m阶b树删除
a 删除的节点是叶子节点
b 删除的节点是非叶子节点
c 删除下溢
注意：将父节点元素b挪下来和左右子节点合并，可...]]></description><category></category></item><item><title><![CDATA[AVLTree的实现（Java）]]></title><link>https://blog.youkuaiyun.com/qq_41587409/article/details/105728193</link><guid>https://blog.youkuaiyun.com/qq_41587409/article/details/105728193</guid><author>qq_41587409</author><pubDate>Fri, 24 Apr 2020 18:19:15 +0800</pubDate><description><![CDATA[前述
二叉搜索树的局限
二叉搜索树的添加，删除，搜索的最坏时间复杂度:O(h)   h指的是树的高度，所以当这棵二叉树退化成链表时复杂度就会变为O(n),
AVL树概念
导致失衡的因素：
添加，删除元素
解决办法
在二叉搜索树的基础上，需要在添加，删除元素后进行恢复平衡的操作，这样才能使树保持平衡状态，即实现afterAdd()和afterRemove()方法。
a:关于添加的分析
1  添加只会...]]></description><category></category></item><item><title><![CDATA[二叉搜索树的实现（JAVA)]]></title><link>https://blog.youkuaiyun.com/qq_41587409/article/details/105724127</link><guid>https://blog.youkuaiyun.com/qq_41587409/article/details/105724127</guid><author>qq_41587409</author><pubDate>Fri, 24 Apr 2020 12:17:32 +0800</pubDate><description><![CDATA[树的基本概念



]]></description><category></category></item><item><title><![CDATA[Tcp的三次握手及四次挥手]]></title><link>https://blog.youkuaiyun.com/qq_41587409/article/details/105632478</link><guid>https://blog.youkuaiyun.com/qq_41587409/article/details/105632478</guid><author>qq_41587409</author><pubDate>Mon, 20 Apr 2020 22:55:42 +0800</pubDate><description><![CDATA[Tcp的三次握手
TCP报文头：
TCP报文：

传输控制协议TCP简介：
面向连接的，可靠的，基于字节流的传输层通信协议
将应用层的数据流分割成报文段并发送给目标节点的TCP层
数据包都有序号，对方收到则发送ACK确认,未收到则重传
使用校验和来检验数据在传输过程中是否有误
TCP  Flags
URG : 紧急指针标志
ACK : 确认序号标志
PSH : push标志
RST : 重置连接标...]]></description><category></category></item><item><title><![CDATA[正则表达式简述]]></title><link>https://blog.youkuaiyun.com/qq_41587409/article/details/105526975</link><guid>https://blog.youkuaiyun.com/qq_41587409/article/details/105526975</guid><author>qq_41587409</author><pubDate>Wed, 15 Apr 2020 08:50:17 +0800</pubDate><description><![CDATA[正则表达式
正则表达式的作用
用于匹配字符串，比如匹配手机号码，邮箱的格式
这里先写两段关于qq号码校验的代码
方式一：未使用正则
/*		校验qq号码. 
		1:要求必须是5-15位数字 
		2:不能以0开头 
		3:必须都是数字*/
		
		String qq = "10a101";
		
		//1:要求必须是5-15位数字 
		if(qq.length() &gt;=5 &amp...]]></description><category></category></item><item><title><![CDATA[JDK1.7和JDK1.8新特性]]></title><link>https://blog.youkuaiyun.com/qq_41587409/article/details/105504207</link><guid>https://blog.youkuaiyun.com/qq_41587409/article/details/105504207</guid><author>qq_41587409</author><pubDate>Tue, 14 Apr 2020 08:53:01 +0800</pubDate><description><![CDATA[JDK新特性
JDK7的新特性
public static void main(String[] args) throws Exception {
		//JDK7的六个新特性
//		A:二进制字面量
		System.out.println(0b1000);
		
//		B:数字字面量可以出现下划线
		System.out.println(1000_0000);
//		C:switch ...]]></description><category></category></item><item><title><![CDATA[类的加载和反射及枚举简述]]></title><link>https://blog.youkuaiyun.com/qq_41587409/article/details/105499570</link><guid>https://blog.youkuaiyun.com/qq_41587409/article/details/105499570</guid><author>qq_41587409</author><pubDate>Tue, 14 Apr 2020 08:48:29 +0800</pubDate><description><![CDATA[类的加载
类加载的过程
当程序要使用某个类时，如果该类还未被加载到内存中，则系统会通过加载，连接，初始化三步来实现对这个类进行初始化。
加载
就是指将class文件读入内存，并为之创建一个Class对象(字节码)。任何类被使用时系统都会建立唯一的一个Class对象(字节码)。
连接
验证 是否有正确的内部结构，并和其他类协调一致
准备 负责为类的静态成员分配内存，并设置默认初始化值
解析 将类的二...]]></description><category></category></item><item><title><![CDATA[工厂设计模式和模板设计模式及Proxy动态代理的简述]]></title><link>https://blog.youkuaiyun.com/qq_41587409/article/details/105497168</link><guid>https://blog.youkuaiyun.com/qq_41587409/article/details/105497168</guid><author>qq_41587409</author><pubDate>Mon, 13 Apr 2020 22:16:59 +0800</pubDate><description><![CDATA[工厂设计模式
这里简单描述工厂方法模式和简单工厂模式这两种工厂模式。
工厂方法模式
概述
工厂方法模式中抽象工厂类负责定义创建对象的接口，具体对象的创建工作由继承抽象工厂的具体类实现。
优点
客户端不需要在负责对象的创建，直接从具体的实现工厂类中获取对象。
如果有新的对象增加，只需要增加一个具体的类和具体的实现工厂类即可，不影响已有的代码
后期维护容易，增强了系统的扩展性。
缺点
需要额外的编写代...]]></description><category></category></item><item><title><![CDATA[线程间的通讯和线程组及线程池的理解]]></title><link>https://blog.youkuaiyun.com/qq_41587409/article/details/105476794</link><guid>https://blog.youkuaiyun.com/qq_41587409/article/details/105476794</guid><author>qq_41587409</author><pubDate>Mon, 13 Apr 2020 00:47:16 +0800</pubDate><description><![CDATA[线程间的通讯
什么时候需要通信
多个线程并发执行时, 在默认情况下CPU是随机切换线程的，如果我们希望他们有规律的执行, 就可以使用通信, 例如多个线程按顺序执行一次打印
线程怎么通信
1 如果希望线程等待, 就调用wait()
2 如果希望唤醒等待的线程, 就调用notify();
3 notify()是随机唤醒一个线程
4 notifyAll()是唤醒所有线程
5 这三个方法必须在同步代码中执...]]></description><category></category></item><item><title><![CDATA[线程同步和死锁和单例设计模式理解]]></title><link>https://blog.youkuaiyun.com/qq_41587409/article/details/105472978</link><guid>https://blog.youkuaiyun.com/qq_41587409/article/details/105472978</guid><author>qq_41587409</author><pubDate>Sun, 12 Apr 2020 19:45:09 +0800</pubDate><description><![CDATA[线程与同步
什么是同步
同步就是加锁，不让其它人访问
synchronized指的就是同步的意思
什么情况下需要同步
当多线程并发, 我们希望某一段代码执行的过程中CPU不要切换到其他线程工作. 这时就需要同步,否则会有线程安全问题.
同步代码块
1 使用synchronized关键字加上一个锁对象来定义一段代码, 这就叫同步代码块
2 多个同步代码块如果使用相同的锁对象, 那么他们就是同步的
3...]]></description><category></category></item><item><title><![CDATA[Java线程的实现及线程的一些方法]]></title><link>https://blog.youkuaiyun.com/qq_41587409/article/details/105462959</link><guid>https://blog.youkuaiyun.com/qq_41587409/article/details/105462959</guid><author>qq_41587409</author><pubDate>Sun, 12 Apr 2020 00:43:47 +0800</pubDate><description><![CDATA[Java中线程的实现方式
方式一、继承Thread
使用步骤：
1．定义类继承Thread
2．重写run方法
3．把新线程要做的事写在run方法中
4．创建线程对象
5．开启新线程, 内部会自动执行run方法
//方式一、继承Thread
//使用步骤：
//1．定义类继承Thread
//2．重写run方法
//3．把新线程要做的事写在run方法中
//4．创建线程对象
//5．开启新线程, ...]]></description><category></category></item><item><title><![CDATA[程序和进程和线程及并行和并发概念]]></title><link>https://blog.youkuaiyun.com/qq_41587409/article/details/105461018</link><guid>https://blog.youkuaiyun.com/qq_41587409/article/details/105461018</guid><author>qq_41587409</author><pubDate>Sat, 11 Apr 2020 22:42:00 +0800</pubDate><description><![CDATA[程序
程序（program）就是一组计算机能识别和执行的指令，是一种静态概念。
进程
进程（Process）是计算机中的程序关于某数据集合上的一次运行活动，是系统进行资源分配和调度的基本单位，是操作系统结构的基础。在早期面向进程设计的计算机结构中，进程是程序的基本执行实体；在当代面向线程设计的计算机结构中，进程是线程的容器。程序是指令、数据及其组织形式的描述，进程是程序的实体。是一种动态概念。
线...]]></description><category></category></item><item><title><![CDATA[JavaIO流中几个特殊封装的流]]></title><link>https://blog.youkuaiyun.com/qq_41587409/article/details/105397866</link><guid>https://blog.youkuaiyun.com/qq_41587409/article/details/105397866</guid><author>qq_41587409</author><pubDate>Thu, 09 Apr 2020 02:37:52 +0800</pubDate><description><![CDATA[上面两篇博客主要总结了一下IO流的基础字节流和字符流，这篇总结一下几个特殊的封装流。
SequenceInputStream
序列流
序列流可以把多个字节输入流整合成一个, 从序列流中读取数据时,
将从被整合的第一个流开始读, 读完一个之后继续读第二个, 以此类推.
将多个字节流整合成一个：
public class Demo01 {
	public static void main(String...]]></description><category></category></item><item><title><![CDATA[JavaIO流之字符流]]></title><link>https://blog.youkuaiyun.com/qq_41587409/article/details/105370510</link><guid>https://blog.youkuaiyun.com/qq_41587409/article/details/105370510</guid><author>qq_41587409</author><pubDate>Wed, 08 Apr 2020 15:48:20 +0800</pubDate><description><![CDATA[1.字符流
1.1 什么是字符流
字符流是可以直接读写字符的IO流
使用字符流从文件中读取字符时, 需要先读取到字节数据, 然后转为字符.
使用字符流往文件写入字符时, 需要把字符转为字节再写入文件.
1.2 字符流有两大派
Reader和Writer，这两个类是抽象类，一般使用它们的子类
FileReader和FileWrite
FileReader的使用
FileReader 用于读取字符,调...]]></description><category></category></item><item><title><![CDATA[java IO流之字节流]]></title><link>https://blog.youkuaiyun.com/qq_41587409/article/details/105365819</link><guid>https://blog.youkuaiyun.com/qq_41587409/article/details/105365819</guid><author>qq_41587409</author><pubDate>Tue, 07 Apr 2020 15:59:28 +0800</pubDate><description><![CDATA[1 IO流相关概念
1.1 什么是IO流？
IO流用来处理设备之间的数据传输
Java对数据的操作是通过流的方式
Java用于操作流的类都在IO包中
1.2 IO流分类
按流向来分
输入流InpuStream  Reader（读取数据）
输出流OutStream  Writer（写数据）
按操作类型分
字节流 : 字节流可以操作任何数据,因为在计算机中任何数据都是以字节的形式存储的
字符流 : 字...]]></description><category></category></item><item><title><![CDATA[基本队列，双端队列，循环队列及循环双端队列的简单实现]]></title><link>https://blog.youkuaiyun.com/qq_41587409/article/details/105340010</link><guid>https://blog.youkuaiyun.com/qq_41587409/article/details/105340010</guid><author>qq_41587409</author><pubDate>Mon, 06 Apr 2020 11:10:45 +0800</pubDate><description><![CDATA[队列是一种特殊的线性表，只能在头尾两端进行操作，遵循先进先出的原则。下面是一些队列接口的简单实现。
双向链表实现基本队列
package com.ldg.queue;

import com.ldg.doubles.LinkedList;

/***
 * 队列:首部执行出队 尾部执行入队 只在首尾进行操作 所以底层用双向链表来实现 时间复杂度很小
 * 
 * @author Administr...]]></description><category></category></item><item><title><![CDATA[springboot+mybatis+freemarker的简单模板搭建]]></title><link>https://blog.youkuaiyun.com/qq_41587409/article/details/105193145</link><guid>https://blog.youkuaiyun.com/qq_41587409/article/details/105193145</guid><author>qq_41587409</author><pubDate>Mon, 30 Mar 2020 11:22:25 +0800</pubDate><description><![CDATA[这里使用maven-web 模板搭建spring+mybatis+freemarker模板,但一般使用quick-start来搭建.因为spring是用于服务,不建议与jsp使用.
本篇文章偏重于视图层资源的访问获取和一些坑点的解决。
例如@RestController和@Controlle的区别，freemarker访问templates下的资源和访问webapp下的资源j，jsp访问webap...]]></description><category></category></item><item><title><![CDATA[SpringBoot使用AOP统一处理Web请求日志]]></title><link>https://blog.youkuaiyun.com/qq_41587409/article/details/105166672</link><guid>https://blog.youkuaiyun.com/qq_41587409/article/details/105166672</guid><author>qq_41587409</author><pubDate>Sat, 28 Mar 2020 19:31:19 +0800</pubDate><description><![CDATA[使用aop编程对每一个Controller的方法进行监听获取一些请求内容和响应内容.
WebLogAspect切面类
package com.ldg.aop;

import org.aspectj.lang.annotation.Aspect;
import org.springframework.stereotype.Component;

import java.util.Enumerati...]]></description><category></category></item></channel></rss>