<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[illovesoftware的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/illovesoftware</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; illovesoftware]]></copyright><item><title><![CDATA[mysql日志( Redo Log 、Undo Log、Bin Log)]]></title><link>https://blog.youkuaiyun.com/illovesoftware/article/details/136869794</link><guid>https://blog.youkuaiyun.com/illovesoftware/article/details/136869794</guid><author>illovesoftware</author><pubDate>Wed, 20 Mar 2024 10:58:33 +0800</pubDate><description><![CDATA[InnoDB是一个带有ACID事务支持的存储引擎，其中redo log和undo log是其实现原子性、一致性、隔离性和持久性（ACID）的重要机制。]]></description><category></category></item><item><title><![CDATA[leetcode-873. 最长的斐波那契子序列的长度【动态规划】]]></title><link>https://blog.youkuaiyun.com/illovesoftware/article/details/120897031</link><guid>https://blog.youkuaiyun.com/illovesoftware/article/details/120897031</guid><author>illovesoftware</author><pubDate>Thu, 21 Oct 2021 23:35:46 +0800</pubDate><description><![CDATA[目录



题目

解法一:暴力解法

解法二:动态规划

题目

最长的斐波那契子序列的长度

如果序列X_1, X_2, ..., X_n满足下列条件，就说它是斐波那契式的：

n &gt;= 3
对于所有i + 2 &lt;= n，都有X_i + X_{i+1} = X_{i+2}
给定一个严格递增的正整数数组形成序列 arr，找到 arr中最长的斐波那契式的子序列的长度。如果一个不存在，返回0 。

（回想一下，子序列是从原序列 arr中派生出来的，它从 arr中删掉任意数量...]]></description><category></category></item><item><title><![CDATA[leetcode-5. 最长回文子串【字符串】]]></title><link>https://blog.youkuaiyun.com/illovesoftware/article/details/120857056</link><guid>https://blog.youkuaiyun.com/illovesoftware/article/details/120857056</guid><author>illovesoftware</author><pubDate>Tue, 19 Oct 2021 23:43:21 +0800</pubDate><description><![CDATA[目录

题目

解法一:暴力解法

解法二:动态规划

题目

最长回文子串

给你一个字符串 s，找到 s 中最长的回文子串。

示例 1：

输入：s = "babad"
输出："bab"
解释："aba" 同样是符合题意的答案。
示例 2：

输入：s = "cbbd"
输出："bb"
示例 3：

输入：s = "a"
输出："a"
示例 4：

输入：s = "ac"
输出："a"

提示：

1 &lt;= s.length &lt;= 1000
s 仅由数字和英文字母（大写和/或小写）组成

]]></description><category></category></item><item><title><![CDATA[leetcode-3. 无重复字符的最长子串【字符串】]]></title><link>https://blog.youkuaiyun.com/illovesoftware/article/details/120837688</link><guid>https://blog.youkuaiyun.com/illovesoftware/article/details/120837688</guid><author>illovesoftware</author><pubDate>Tue, 19 Oct 2021 00:31:29 +0800</pubDate><description><![CDATA[目录

题目

思路

题目

无重复字符的最长子串

给定一个字符串 s ，请你找出其中不含有重复字符的最长子串的长度。

示例1:

输入: s = "abcabcbb"
输出: 3
解释: 因为无重复字符的最长子串是 "abc"，所以其长度为 3。
示例 2:

输入: s = "bbbbb"
输出: 1
解释: 因为无重复字符的最长子串是 "b"，所以其长度为 1。
示例 3:

输入: s = "pwwkew"
输出: 3
解释: 因为无重复字符的最长子串是"wke"，所以其长度为 3。...]]></description><category></category></item><item><title><![CDATA[leetcode-225. 用队列实现栈【队列/栈】]]></title><link>https://blog.youkuaiyun.com/illovesoftware/article/details/120755756</link><guid>https://blog.youkuaiyun.com/illovesoftware/article/details/120755756</guid><author>illovesoftware</author><pubDate>Thu, 14 Oct 2021 01:19:12 +0800</pubDate><description><![CDATA[题目

用队列实现栈

用两个栈实现一个队列。队列的声明如下，请实现它的两个函数 appendTail 和 deleteHead ，分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素，deleteHead操作返回 -1 )

示例 1：

输入：
["CQueue","appendTail","deleteHead","deleteHead"]
[[],[3],[],[]]
输出：[null,null,3,-1]
示例 2：

输入：
["CQueue","deleteHead",".]]></description><category></category></item><item><title><![CDATA[leetcode-09. 用两个栈实现队【栈/队列】]]></title><link>https://blog.youkuaiyun.com/illovesoftware/article/details/120755591</link><guid>https://blog.youkuaiyun.com/illovesoftware/article/details/120755591</guid><author>illovesoftware</author><pubDate>Thu, 14 Oct 2021 00:48:58 +0800</pubDate><description><![CDATA[目录

题目

思路

题目

剑指 Offer 09. 用两个栈实现队列

用两个栈实现一个队列。队列的声明如下，请实现它的两个函数 appendTail 和 deleteHead ，分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素，deleteHead操作返回 -1 )
示例 1：

输入：
["CQueue","appendTail","deleteHead","deleteHead"]
[[],[3],[],[]]
输出：[null,null,3,-1]
示例 2：

输入.]]></description><category></category></item><item><title><![CDATA[leetcode-189. 旋转数组【数组】]]></title><link>https://blog.youkuaiyun.com/illovesoftware/article/details/120734779</link><guid>https://blog.youkuaiyun.com/illovesoftware/article/details/120734779</guid><author>illovesoftware</author><pubDate>Tue, 12 Oct 2021 23:51:23 +0800</pubDate><description><![CDATA[目录

题目

思路

题目

旋转数组

给定一个数组，将数组中的元素向右移动k个位置，其中k是非负数。

示例 1:

输入: nums = [1,2,3,4,5,6,7], k = 3
输出: [5,6,7,1,2,3,4]
解释:
向右旋转 1 步: [7,1,2,3,4,5,6]
向右旋转 2 步: [6,7,1,2,3,4,5]
向右旋转 3 步: [5,6,7,1,2,3,4]
示例2:

输入：nums = [-1,-100,3,99], k = 2
输出：[3,99,-1,-10...]]></description><category></category></item><item><title><![CDATA[leetcode-61. 旋转链表【链表】]]></title><link>https://blog.youkuaiyun.com/illovesoftware/article/details/120695359</link><guid>https://blog.youkuaiyun.com/illovesoftware/article/details/120695359</guid><author>illovesoftware</author><pubDate>Mon, 11 Oct 2021 01:07:37 +0800</pubDate><description><![CDATA[目录

题目

思路

力扣风采

题目

61. 旋转链表

给你一个链表的头节点head，旋转链表，将链表每个节点向右移动k个位置。


示例 1：




输入：head = [1,2,3,4,5], k = 2
输出：[4,5,1,2,3]
示例 2：




输入：head = [0,1,2], k = 4
输出：[2,0,1]

提示：

链表中节点的数目在范围 [0, 500] 内
-100 &lt;= Node.val &lt;= 100
0 &lt;= k &lt;= 2 *...]]></description><category></category></item><item><title><![CDATA[leetcode-206. 反转链表【链表】]]></title><link>https://blog.youkuaiyun.com/illovesoftware/article/details/120694683</link><guid>https://blog.youkuaiyun.com/illovesoftware/article/details/120694683</guid><author>illovesoftware</author><pubDate>Sun, 10 Oct 2021 23:55:04 +0800</pubDate><description><![CDATA[目录

题目

思路

力扣风采

题目

反转链表

给你单链表的头节点 head ，请你反转链表，并返回反转后的链表。

示例 1：




输入：head = [1,2,3,4,5]
输出：[5,4,3,2,1]示例 2：




输入：head = [1,2]
输出：[2,1]示例 3：

输入：head = []
输出：[]

提示：

链表中节点的数目范围是 [0, 5000]
-5000 &lt;= Node.val &lt;= 5000

来源：力扣（LeetCode）
链接：https:.]]></description><category></category></item><item><title><![CDATA[leetcode-2. 两数相加【链表】]]></title><link>https://blog.youkuaiyun.com/illovesoftware/article/details/120681579</link><guid>https://blog.youkuaiyun.com/illovesoftware/article/details/120681579</guid><author>illovesoftware</author><pubDate>Sun, 10 Oct 2021 00:54:10 +0800</pubDate><description><![CDATA[目录

题目：两数相加

思路

力扣风采

题目：两数相加

给你两个非空 的链表，表示两个非负的整数。它们每位数字都是按照逆序的方式存储的，并且每个节点只能存储一位数字。

请你将两个数相加，并以相同形式返回一个表示和的链表。

你可以假设除了数字 0 之外，这两个数都不会以 0开头。

来源：力扣（LeetCode）
链接：https://leetcode-cn.com/problems/add-two-numbers

示例 1：




输入：l1 = [2,4,3], l2 = [...]]></description><category></category></item><item><title><![CDATA[leetcode-1281. 整数的各位积和之差]]></title><link>https://blog.youkuaiyun.com/illovesoftware/article/details/120662325</link><guid>https://blog.youkuaiyun.com/illovesoftware/article/details/120662325</guid><author>illovesoftware</author><pubDate>Sat, 09 Oct 2021 00:15:57 +0800</pubDate><description><![CDATA[目录

题目

思路：

力扣风采

题目

1281. 整数的各位积和之差

给你一个整数n，请你帮忙计算并返回该整数「各位数字之积」与「各位数字之和」的差。

示例 1：

输入：n = 234
输出：15
解释：
各位数之积 = 2 * 3 * 4 = 24
各位数之和 = 2 + 3 + 4 = 9
结果 = 24 - 9 = 15
示例 2：

输入：n = 4421
输出：21
解释：
各位数之积 = 4 * 4 * 2 * 1 = 32
各位数之和 = 4 + 4 + 2 + 1 ...]]></description><category></category></item><item><title><![CDATA[leetcode-7.字符串反转【字符串】]]></title><link>https://blog.youkuaiyun.com/illovesoftware/article/details/120661825</link><guid>https://blog.youkuaiyun.com/illovesoftware/article/details/120661825</guid><author>illovesoftware</author><pubDate>Fri, 08 Oct 2021 23:24:16 +0800</pubDate><description><![CDATA[目录



题目:7. 整数反转

图解:

思路:

完整代码:

力扣风采(不是最优再接再励)

题目:7. 整数反转

给你一个 32 位的有符号整数 x ，返回将 x 中的数字部分反转后的结果。如果反转后整数超过 32 位的有符号整数的范围[−231,231− 1] ，就返回 0。

假设环境不允许存储 64 位整数（有符号或无符号）。

示例 1：


输入：x = 123
输出：321

示例 2：


输入：x = -123
输出：-321

示例 3：


输入：x = 120...]]></description><category></category></item><item><title><![CDATA[【冲刺大厂P6专题】JVM中一次完整的GC流程是怎样的，对象如何晋升到老年代？（看完此文再也不怕面试官问我GC的过程了）]]></title><link>https://blog.youkuaiyun.com/illovesoftware/article/details/119491069</link><guid>https://blog.youkuaiyun.com/illovesoftware/article/details/119491069</guid><author>illovesoftware</author><pubDate>Sat, 07 Aug 2021 19:14:14 +0800</pubDate><description><![CDATA[先描述一下Java堆内存划分，再解释Minor GC，Major GC，full GC，描述它们之间转化流程。

目录

1.内存结构

2.堆GC触发条件

垃圾收集器

年轻代GC触发条件

老年代GC (Major GC)触发机制

FullGC 触发机制

3.GC的过程描述

1.内存结构

GC通常是发生在堆上，堆上GC的内存结构如下:



默认 -XX:NewRatio=2 , 标识新生代占1 , 老年代占2 ,新生代占整个堆的1/3.
修改占比 -XX:NewPatio=4 , 标识新..]]></description><category></category></item><item><title><![CDATA[【冲刺大厂P6专题】JVM内存为什么要分成新生代，老年代，持久代？新生代中为什么要分为Eden和Survivor?]]></title><link>https://blog.youkuaiyun.com/illovesoftware/article/details/119490775</link><guid>https://blog.youkuaiyun.com/illovesoftware/article/details/119490775</guid><author>illovesoftware</author><pubDate>Sat, 07 Aug 2021 18:51:09 +0800</pubDate><description><![CDATA[需要先了解区域分配

目录

1）共享内存区划分

2）为什么分年老代和新生代

3)为什么要分为Eden和Survivor?为什么要设置两个Survivor区？

1）共享内存区划分

 1.共享内存区 = 持久代+ 堆（注;jdk1.8及以上jvm废弃了持久代）

 2.持久带代= 方法区 + 其他

 3.Java堆 = 老年代 + 新生代

4.新生代 = Eden(伊甸区) + S1（幸存1） + S2（幸存2）



2）为什么分年老代和新生代

1）新生代(Young Gen)：年...]]></description><category></category></item><item><title><![CDATA[Nettty线程模型和Reactor模式]]></title><link>https://blog.youkuaiyun.com/illovesoftware/article/details/119301006</link><guid>https://blog.youkuaiyun.com/illovesoftware/article/details/119301006</guid><author>illovesoftware</author><pubDate>Sun, 01 Aug 2021 17:48:55 +0800</pubDate><description><![CDATA[线程模型基本介绍

不同的线程模式，对程序的性能有很大影响，在学习Netty线程模式之前，首先讲解下各个线程模式，最后看看Netty线程模型有什么优越性.目前存在的线程模型有：

(1)传统阻塞I/O服务模型

(2)Reactor模型

根据Reactor的数量和处理资源池线程的数量不同，有3种典型的实现:

单Reactor单线程

单Reactor多线程

主从Reactor多线程

传统阻塞I/O服务模型

采用阻塞IO模式获取输入的数据,每个连接都需要独...]]></description><category></category></item><item><title><![CDATA[BIO、NIO、AIO有什么区别]]></title><link>https://blog.youkuaiyun.com/illovesoftware/article/details/119300877</link><guid>https://blog.youkuaiyun.com/illovesoftware/article/details/119300877</guid><author>illovesoftware</author><pubDate>Sun, 01 Aug 2021 17:38:34 +0800</pubDate><description><![CDATA[目录

IO模型

概要

BIO(同步并阻塞)

NIO(同步非阻塞)

AIO(异步非阻塞)

BIO、NIO、AIO适用场景分析

IO模型

概要

IO模型简单的理解:就是用什么样的通道进行数据的发送和接收，很大程度上决定了程序通信的性能.

Java共支持3种网络编程模型/IO模式：BIO(同步并阻塞)、NIO(同步非阻塞)、AIO(异步非阻塞)阻塞与非阻塞.

BIO(同步并阻塞)

JavaBIO就是传统的socket编程.

BIO(blockingI/O)：...]]></description><category></category></item><item><title><![CDATA[【冲刺大厂P6专题】集群分布式Session是如何实现的]]></title><link>https://blog.youkuaiyun.com/illovesoftware/article/details/119225848</link><guid>https://blog.youkuaiyun.com/illovesoftware/article/details/119225848</guid><author>illovesoftware</author><pubDate>Fri, 30 Jul 2021 01:17:33 +0800</pubDate><description><![CDATA[目录



分布式环境下session会存在的问题?

分布式Session⼀致性的⽅案

一.Nginx的IP_Hash策略（可以使⽤）

二.Session复制（不推荐）

三.Session共享，Session集中存储（推荐）

分布式环境下session会存在的问题?

图解:





文字解:

出现这个问题的原因从根本上来说是因为Http协议是⽆状态的协议。客户端和服务端在某次会话中产⽣的数据不会被保留下来，所以第⼆次请求服务端⽆法认识到你曾经来过，Http为什么要设计为⽆状态协议？早期...]]></description><category></category></item><item><title><![CDATA[【冲刺大厂P6专题】常用的分布式ID解决方案]]></title><link>https://blog.youkuaiyun.com/illovesoftware/article/details/119089019</link><guid>https://blog.youkuaiyun.com/illovesoftware/article/details/119089019</guid><author>illovesoftware</author><pubDate>Sun, 25 Jul 2021 22:28:00 +0800</pubDate><description><![CDATA[目录



分布式ID概念

分布式ID实现方案?

1.UUID(可以⽤)

2.独立数据库的自增ID（基本不用，列出来以供了解）

3.SnowFlake雪花算法（可以⽤，推荐）

4.借助Redis的Incr命令获取全局唯⼀ID（推荐）

分布式ID概念

为什么需要分布式ID(分布式集群环境下的全局唯⼀ID唯一标识)





分布式ID实现方案?

1.UUID(可以⽤)

UUID是指UniversallyUniqueIdentifier，翻译为中⽂是通⽤唯⼀识别码

产...]]></description><category></category></item><item><title><![CDATA[Tomcat核心知识梳理(Tomcat体系结构、Tomcat类加载机制剖析、Jvm类加载机制剖析)]]></title><link>https://blog.youkuaiyun.com/illovesoftware/article/details/118884980</link><guid>https://blog.youkuaiyun.com/illovesoftware/article/details/118884980</guid><author>illovesoftware</author><pubDate>Sun, 18 Jul 2021 23:01:43 +0800</pubDate><description><![CDATA[目录



Tomcat体系结构

概要

Tomcat体系结构结构概念如下:

Server

Engine

Host

Connector

Context

Wrapper

找到Tomcat安装路径下的Server.xml看到tomcat中的内部结构(去掉杂余注释更清晰，如下代码)

Tomcat类加载机制剖析

JVM的类加载机制

双亲委派机制

什么是双亲委派机制

双亲委派机制的作⽤

Tomcat的类加载机制

Tomcat体系结构

概要

Tomcat是⼀个Http服务器（能够...]]></description><category></category></item><item><title><![CDATA[SpringBoot核心知识梳理]]></title><link>https://blog.youkuaiyun.com/illovesoftware/article/details/118534465</link><guid>https://blog.youkuaiyun.com/illovesoftware/article/details/118534465</guid><author>illovesoftware</author><pubDate>Wed, 07 Jul 2021 01:04:39 +0800</pubDate><description><![CDATA[目录



基础篇

一.SpringBoot的自动配置原理是什么?

二.SpringBoot中如何解决跨域问题?

源码篇

四.源码剖析-自动配置

SpringBoot到底是如何进行自动配置的，都把哪些组件进行了自动配置？

@SpringBootApplication

@SpringBootConfiguration

@EnableAutoConfiguration

@AutoConfigurationPackage

六.在SpringBoot中Mybatis自动配置源码分析

基...]]></description><category></category></item></channel></rss>