<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[MoozLee的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/a_shy_boy</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; a_shy_boy]]></copyright><item><title><![CDATA[InnoDB引擎行存储结构]]></title><link>https://blog.youkuaiyun.com/a_shy_boy/article/details/122705642</link><guid>https://blog.youkuaiyun.com/a_shy_boy/article/details/122705642</guid><author>a_shy_boy</author><pubDate>Wed, 26 Jan 2022 17:15:31 +0800</pubDate><description><![CDATA[InnoDB引擎行存储结构
文章目录InnoDB引擎行存储结构1.存储引擎2.InnoDB页的概念3.InnoDB行格式3.1 指定行格式3.2 COMPACT格式3.3 REDUNDANT行格式3.4 溢出列3.5DYNAMIC行格式和COMPRESSED行格式
1.存储引擎
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Y7BY5kOU-1643188470321)(C:\Users\moozlee\Desktop\桌面文件夹\笔记\img\MySQL逻辑架构.jpg)]]]></description><category></category></item><item><title><![CDATA[JDK源码——ArrayList（JDK8）]]></title><link>https://blog.youkuaiyun.com/a_shy_boy/article/details/122507827</link><guid>https://blog.youkuaiyun.com/a_shy_boy/article/details/122507827</guid><author>a_shy_boy</author><pubDate>Sat, 15 Jan 2022 11:32:16 +0800</pubDate><description><![CDATA[文章目录JDK源码——ArrayList（JDK8）1.类的定义2.常量4.成员变量5.构造方法6.普通方法——扩容6.1检查6.2扩容7.普通方法——写入8.普通方法——写出9.普通方法——删除10.普通方法——序列化11.迭代器11.1 Itr11.1.1声明11.1.2成员变量11.1.3方法11.2ListItr11.2.1声明11.2.2构造方法11.2.3普通方法11.3获取迭代器12.其他方法
JDK源码——ArrayList（JDK8）
ArrayList，一个可扩容的，底层用数组实现的，非]]></description><category></category></item><item><title><![CDATA[Java并发编程实战——第二章 线程安全性]]></title><link>https://blog.youkuaiyun.com/a_shy_boy/article/details/122465503</link><guid>https://blog.youkuaiyun.com/a_shy_boy/article/details/122465503</guid><author>a_shy_boy</author><pubDate>Thu, 13 Jan 2022 00:32:55 +0800</pubDate><description><![CDATA[系列文章目录
文章目录系列文章目录第一部分 基础知识第二章 线程安全性2.1什么是线程安全性2.2原子性2.2.1竞态条件2.2.2延迟初始化中的竞态条件2.2.3复合操作2.3加锁机制2.3.1内置锁——synchronized2.3.2重入2.4 活跃与性能


第一部分 基础知识
第二章 线程安全性


线程安全的核心在于对状态访问操作的管理，尤其是对共享的和可变的状态的访问
对象的状态： 非正式意义上讲，指存储在状态变量（实例或者静态域）中的数据，同时对象的状态可能包括对其他依赖对象的域，例如某个H]]></description><category></category></item><item><title><![CDATA[第三部分——泛型与容器.泛型]]></title><link>https://blog.youkuaiyun.com/a_shy_boy/article/details/122412051</link><guid>https://blog.youkuaiyun.com/a_shy_boy/article/details/122412051</guid><author>a_shy_boy</author><pubDate>Mon, 10 Jan 2022 15:42:59 +0800</pubDate><description><![CDATA[系列文章目录
第一部分——编程基础与二进制 1
第一部分——编程基础与二进制 2
第二部分——面向对象.类的基础
第二部分——面向对象.类的继承
第二部分——面向对象.类的扩展
第二部分——面向对象.异常
第三部分——泛型与容器.泛型
第三部分——泛型与容器.列表和队列（单独专栏——JDK源码）
第三部分——泛型与容器.Map和Set（单独专栏——JDK源码）
文章目录系列文章目录第三部分——泛型与容器8.泛型8.1基本概念和原理8.1.1一个泛型的案例8.1.2泛型类8.1.3泛型接口8.1.4泛型方法8]]></description><category></category></item><item><title><![CDATA[第二部分——面向对象.常用基础类]]></title><link>https://blog.youkuaiyun.com/a_shy_boy/article/details/122390446</link><guid>https://blog.youkuaiyun.com/a_shy_boy/article/details/122390446</guid><author>a_shy_boy</author><pubDate>Sun, 09 Jan 2022 10:37:36 +0800</pubDate><description><![CDATA[系列文章目录
第一部分——编程基础与二进制 1
第一部分——编程基础与二进制 2
第二部分——面向对象.类的基础
第二部分——面向对象.类的继承
第二部分——面向对象.类的扩展
第二部分——面向对象.异常
文章目录系列文章目录第二部分——面向对象7.常用基础类


第二部分——面向对象
7.常用基础类
关于Java中常用的基础类，部分可以参考API，重点的类我会在 JDK源码这一个专栏中详细的从源码级别分析

...]]></description><category></category></item><item><title><![CDATA[第二部分——面向对象.异常]]></title><link>https://blog.youkuaiyun.com/a_shy_boy/article/details/122390143</link><guid>https://blog.youkuaiyun.com/a_shy_boy/article/details/122390143</guid><author>a_shy_boy</author><pubDate>Sun, 09 Jan 2022 09:50:40 +0800</pubDate><description><![CDATA[系列文章目录
第一部分——编程基础与二进制 1
第一部分——编程基础与二进制 2
第二部分——面向对象.类的基础
第二部分——面向对象.类的继承
第二部分——面向对象.类的扩展
文章目录系列文章目录第二部分——面向对象6.异常6.1初识异常6.1.1NullPointerException——空指针异常6.1.2NumberFormatException——数字格式化异常6.2异常类的框架6.2.1Throwable6.2.2Error6.2.3Exception6.2.4RuntimeException6]]></description><category></category></item><item><title><![CDATA[第二部分——面向对象.类的扩展]]></title><link>https://blog.youkuaiyun.com/a_shy_boy/article/details/122382109</link><guid>https://blog.youkuaiyun.com/a_shy_boy/article/details/122382109</guid><author>a_shy_boy</author><pubDate>Sat, 08 Jan 2022 16:25:01 +0800</pubDate><description><![CDATA[系列文章目录
第一部分——编程基础与二进制 1
第一部分——编程基础与二进制 2
第二部分——面向对象.类的基础
第二部分——面向对象.类的继承
文章目录系列文章目录第二部分——面向对象5.类的扩展5.1接口5.1.1接口的概念——规范与能力5.1.2定义接口5.1.3实现接口5.1.4使用接口5.1.5接口的细节5.1.6Java8与Java9对接口的增强5.2抽象类5.2.1抽象类与抽象方法5.2.2为什么需要抽象类5.2.3抽象类与接口5.3内部类5.3.1静态内部类5.3.2成员内部类5.3.3方法]]></description><category></category></item><item><title><![CDATA[第二部分——面向对象.类的继承]]></title><link>https://blog.youkuaiyun.com/a_shy_boy/article/details/122367326</link><guid>https://blog.youkuaiyun.com/a_shy_boy/article/details/122367326</guid><author>a_shy_boy</author><pubDate>Fri, 07 Jan 2022 16:31:18 +0800</pubDate><description><![CDATA[系列文章目录
第一部分——编程基础与二进制 1
第一部分——编程基础与二进制 2
第二部分——面向对象.类的基础
文章目录系列文章目录第二部分——面向对象4.类的继承4.1继承语法4.2基本概念4.2.1Object类4.2.2Override and Overload4.2.3多继承与单继承4.3继承的细节4.3.1构造方法4.3.2this and super4.3.3静态绑定与动态绑定4.3.4再谈static和final4.3.5转型4.3.6子类父类的初始化顺序4.4面向对象三大特性


第二部分]]></description><category></category></item><item><title><![CDATA[第二部分——面向对象.类的基础]]></title><link>https://blog.youkuaiyun.com/a_shy_boy/article/details/122340678</link><guid>https://blog.youkuaiyun.com/a_shy_boy/article/details/122340678</guid><author>a_shy_boy</author><pubDate>Thu, 06 Jan 2022 12:05:40 +0800</pubDate><description><![CDATA[系列文章目录
第一部分——编程基础与二进制 1
第一部分——编程基础与二进制 2
文章目录系列文章目录第二部分——面向对象3.类的基础3.1类的基本概念与面向对象3.1.1抽象3.1.2类与实例3.1.3面向对象编程3.2类的语法3.2.1类的定义3.2.2类的创建3.2.3类的使用3.3包的概念与语法3.3.1包的概念3.3.2声明类所在的包3.3.3通过包使用类3.3.4双亲委派机制3.3 类中的关键字们3.3.1类修饰符3.3.2成员变量的修饰符3.3.3方法的修饰符3.3.4访问控制修饰符的总结3.]]></description><category></category></item><item><title><![CDATA[第一部分——编程基础与二进制 2]]></title><link>https://blog.youkuaiyun.com/a_shy_boy/article/details/122299468</link><guid>https://blog.youkuaiyun.com/a_shy_boy/article/details/122299468</guid><author>a_shy_boy</author><pubDate>Tue, 04 Jan 2022 11:33:11 +0800</pubDate><description><![CDATA[系列文章目录
第一章——编程基础与二进制 1
文章目录系列文章目录2.二进制2.1整数的二进制表示2.2整数的十六进制表示2.3浮点数的二进制表示2.4字符的编码与乱码2.4.0什么是编码2.4.1常见非Unicode编码2.4.2Unicode编码


2.二进制
2.1整数的二进制表示
对于一个整数，我们日常使用的都是十进制，将十进制转换成二进制，就称作是机器数，但是在转换成二进制的过程出现了一个问题，负数怎么表示？
一般对于有符号整数，我们会在最高位置一个符号位，0表示正数，1表示负数，故据此推理1的]]></description><category></category></item><item><title><![CDATA[第一部分——编程基础与二进制 1]]></title><link>https://blog.youkuaiyun.com/a_shy_boy/article/details/122289155</link><guid>https://blog.youkuaiyun.com/a_shy_boy/article/details/122289155</guid><author>a_shy_boy</author><pubDate>Mon, 03 Jan 2022 16:49:28 +0800</pubDate><description><![CDATA[系列文章目录
文章目录系列文章目录1.编程基础1.1 数据类型与变量1.1.1 java的基本数据类型：1.1.2 java的引用数据类型1.1.3 基本数据类型与引用数据类型的区别1.2 赋值1.2.0 赋值默认值1.2.1 基本数据类型1.2.2数组类型1.3 基本运算1.3.1算术运算1.3.2比较运算符1.3.3逻辑运算符1.3.4位运算符1.4条件执行1.4.1if/else/switch的简单用法1.4.2条件执行的原理1.5循环1.5.1 简单的循环1.5.2循环实现原理1.6函数1.7函数调]]></description><category></category></item><item><title><![CDATA[JDK源码——String（二）]]></title><link>https://blog.youkuaiyun.com/a_shy_boy/article/details/121342413</link><guid>https://blog.youkuaiyun.com/a_shy_boy/article/details/121342413</guid><author>a_shy_boy</author><pubDate>Mon, 15 Nov 2021 20:19:01 +0800</pubDate><description><![CDATA[JDK源码——String（二）3.普通方法（接上一节）4.String类的特性——不可变性4.1.什么叫不可变？4.2怎么实现的不可变？4.3不变性的好处


3.普通方法（接上一节）
public int compareTo(String anotherString) {
    int len1 = value.length;
    int len2 = anotherString.value.length;
    int lim = Math.min(len1, len2);
    char ]]></description><category></category></item><item><title><![CDATA[Spring Cloud Config使用Gitee为远程客户端时报错 Auth fail的解决办法]]></title><link>https://blog.youkuaiyun.com/a_shy_boy/article/details/120934643</link><guid>https://blog.youkuaiyun.com/a_shy_boy/article/details/120934643</guid><author>a_shy_boy</author><pubDate>Sun, 24 Oct 2021 15:39:35 +0800</pubDate><description><![CDATA[问题描述：
spring cloud config server 搭建远程仓库使用gitee的时候出现以下的报错
org.eclipse.jgit.api.errors.TransportException: ssh://username@gitee.com/project.git: Auth fail
    at org.eclipse.jgit.api.FetchCommand.call(FetchCommand.java:254) ~[org.eclipse.jgit-5.1.3.201810200]]></description><category></category></item><item><title><![CDATA[JDK源码——String（一）]]></title><link>https://blog.youkuaiyun.com/a_shy_boy/article/details/120318196</link><guid>https://blog.youkuaiyun.com/a_shy_boy/article/details/120318196</guid><author>a_shy_boy</author><pubDate>Wed, 15 Sep 2021 22:05:13 +0800</pubDate><description><![CDATA[JDK源码——String（一）通读源码1.类的定义2.字段3.构造方法3.普通方法（未完）


通读源码
1.类的定义
public final class String
    implements java.io.Serializable, Comparable&lt;String&gt;, CharSequence


final class
实现了Serializable 可序列化
实现了Comparable 可比较
实现了CharSequence 表明可读连续字符的特性

2.字段
/** Th]]></description><category></category></item><item><title><![CDATA[BIO vs NIO——概念杂谈]]></title><link>https://blog.youkuaiyun.com/a_shy_boy/article/details/120142815</link><guid>https://blog.youkuaiyun.com/a_shy_boy/article/details/120142815</guid><author>a_shy_boy</author><pubDate>Mon, 06 Sep 2021 21:30:17 +0800</pubDate><description><![CDATA[BIO vs NIO——概念杂谈前言一、阻塞与非阻塞、同步与异步二、BIO、NIO、AIO
前言
今天在学习Netty的过程中再一次的领会到了一些概念更清晰的轮廓，遂记。
一、阻塞与非阻塞、同步与异步
这一对概念，我应该是最早在操作系统的进程中接触到的，在我的理解里面，同步与异步这一对概念放在操作系统的进程的语境下理解可能更为深刻和恰当。

用户态与内核态

我们知道对于操作系统而言，为了保证不同进程间的相互独立，即起到保护某些关键操作，我们将内存空间分成了用户空间和内核空间，将操作系统的状态分为用户态和内]]></description><category></category></item><item><title><![CDATA[枚举单例yyds之单例模式没有那么简单]]></title><link>https://blog.youkuaiyun.com/a_shy_boy/article/details/114547733</link><guid>https://blog.youkuaiyun.com/a_shy_boy/article/details/114547733</guid><author>a_shy_boy</author><pubDate>Wed, 10 Mar 2021 23:29:20 +0800</pubDate><description><![CDATA[枚举单例yyds——单例模式没有那么简单前言一、饿汉与懒汉——得不偿失的改变二、使用步骤1.引入库2.读入数据总结

前言
我相信大多程序员同胞们第一个接触的设计模式就是在大学课堂上讲到的单例模式，功能目的很清晰，即在面向对象技术中，保证某个对象在内存中只存在一个，由于其功能目过于直白，以至于我竟然一开始觉得单例模式本身很单纯，但其实单纯的不是它，而是我（小丑竟是我自己.jpg）
那接下来我将讲述一个很不一样的单例模式

一、饿汉与懒汉——得不偿失的改变
首先第一种单例模式的设计，也是最经典最常见最先接触到]]></description><category></category></item><item><title><![CDATA[一分钟带你了解配置好一切软件环境变量]]></title><link>https://blog.youkuaiyun.com/a_shy_boy/article/details/113792915</link><guid>https://blog.youkuaiyun.com/a_shy_boy/article/details/113792915</guid><author>a_shy_boy</author><pubDate>Fri, 12 Feb 2021 13:43:30 +0800</pubDate><description><![CDATA[彻底弄清环境变量前言一、运行软件的方式二、一些“走了后门”的软件三、怎么走后门——环境变量总结

前言

（本篇同样适用于现在需要配置环境变量的小伙伴，不要嫌罗嗦，请一定看完！）


很多学习编程的同学在下载很多软件包后发现都有一个步骤——配置环境变量，对于不了解环境变量的人来说简直可以说是噩梦，那环境变量到底是什么？相信在看完这篇博客后你不会在产生疑问
一、运行软件的方式
问大家一个问题：你知道几种运行软件的方式？
从我们小时候接触计算机开始，我们就知道想要运行一个软件我们双击桌面上的图标或者右键打开就可]]></description><category></category></item><item><title><![CDATA[希尔排序的正确性]]></title><link>https://blog.youkuaiyun.com/a_shy_boy/article/details/113730832</link><guid>https://blog.youkuaiyun.com/a_shy_boy/article/details/113730832</guid><author>a_shy_boy</author><pubDate>Sun, 07 Feb 2021 00:17:44 +0800</pubDate><description><![CDATA[希尔排序的正确性一、问题引入二、希尔排序是什么？三、论证过程

一、问题引入
什么是希尔排序？提到希尔排序那么就需要先提到插入排序


图片来源于励志学号数据结构


如上图所示，插入排序就是通过依次遍历元素并将其插入到指定位置的一种排序方法，这种排序方式在面对数据大体有序的情况时表现十分良好，而在面对杂乱无序甚至逆序的数据时效率极低，因此为了解决这种弊端就出现了插入排序的plus版——希尔排序。  

二、希尔排序是什么？
像问题引入中提到的插入排序一样，希尔排序也是在进行多轮插入排序，只是我们进行插入排]]></description><category></category></item></channel></rss>