<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[WhiteEmperor的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/WhiteEmperor</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; WhiteEmperor]]></copyright><item><title><![CDATA[隐藏字符导致的查询失败]]></title><link>https://blog.youkuaiyun.com/WhiteEmperor/article/details/134262701</link><guid>https://blog.youkuaiyun.com/WhiteEmperor/article/details/134262701</guid><author>WhiteEmperor</author><pubDate>Tue, 07 Nov 2023 11:02:55 +0800</pubDate><description><![CDATA[A服务查询数据库找到activityNo字段，作为查询B服务信息的一个参数，传递给B服务，B服务提示查询不到，但实际B服务数据库中存在对应数据。]]></description><category></category></item><item><title><![CDATA[JAVA入参注解方式校验枚举类]]></title><link>https://blog.youkuaiyun.com/WhiteEmperor/article/details/126712466</link><guid>https://blog.youkuaiyun.com/WhiteEmperor/article/details/126712466</guid><author>WhiteEmperor</author><pubDate>Mon, 05 Sep 2022 20:25:55 +0800</pubDate><description><![CDATA[Java枚举类型参数通过自定义注解方式校验参数范围]]></description><category></category></item><item><title><![CDATA[Netty简介以及入门使用]]></title><link>https://blog.youkuaiyun.com/WhiteEmperor/article/details/113148617</link><guid>https://blog.youkuaiyun.com/WhiteEmperor/article/details/113148617</guid><author>WhiteEmperor</author><pubDate>Mon, 25 Jan 2021 23:43:28 +0800</pubDate><description><![CDATA[简介

Netty 是一个利用 Java 的高级网络的能力，隐藏其背后的复杂性而提供一个易于使用的 API 的客户端/服务器通信框架。

由于NIO的类库和API 繁杂，使用麻烦，需要熟练掌握Selector、 ServerSocketChannel、 SocketChannel、 ByteBuffer等。 开发工作量和难度都非常大。例如客户端面临断线重连、 网络闪断、心跳处理、半包读写、 网络拥塞和异常流的处理等等。而Netty 对 JDK自

带的 NIO 的 API 进行了良好的封装，解决了上述问题。]]></description><category></category></item><item><title><![CDATA[IO模型与多路复用技术]]></title><link>https://blog.youkuaiyun.com/WhiteEmperor/article/details/112707054</link><guid>https://blog.youkuaiyun.com/WhiteEmperor/article/details/112707054</guid><author>WhiteEmperor</author><pubDate>Sat, 16 Jan 2021 16:28:03 +0800</pubDate><description><![CDATA[目录

同步异步与阻塞非阻塞

IO模型

BIO（Blocking IO）

NIO（NON Blocking IO）

Epoll重点函数

多路复用技术比较

AIO(NIO 2.0)

AIO、BIO、NIO三种IO模型比较

同步异步与阻塞非阻塞

在解释IO模型之前，我们首先明白什么是同步与异步，什么是阻塞与非阻塞。

所谓同步异步，针对的是客户端而言。

同步，就是说客户端的请求是否需要排队一个个进行处理，如果是，那么就是同步，否则就是异步。

阻塞与非阻塞，针对的是服务端而言。

阻塞，就是]]></description><category></category></item><item><title><![CDATA[Mysql实现可重复读的方式——MVCC]]></title><link>https://blog.youkuaiyun.com/WhiteEmperor/article/details/112235682</link><guid>https://blog.youkuaiyun.com/WhiteEmperor/article/details/112235682</guid><author>WhiteEmperor</author><pubDate>Wed, 06 Jan 2021 00:10:01 +0800</pubDate><description><![CDATA[Mysql实现可重复读的方式——MVCC

目录

简介：

隐式字段：

undo日志版本链

read-view一致性视图

MVCC比对规则

简介

MVCC：（Multi-Version Concurrency Control）多版本并发控制

隐式字段

Mysql每一行数据都有几个隐藏的字段，用于标记本条数据的历史版本信息以及事务信息等。
DB_TRX_ID：最近修改(修改/插入)事务ID，记录创建这条记录/最后一次修改该记录的事务ID
DB_ROLL_PTR：回滚指针，指向这条记录的上一个版]]></description><category></category></item><item><title><![CDATA[Spring源码编译过程]]></title><link>https://blog.youkuaiyun.com/WhiteEmperor/article/details/109093125</link><guid>https://blog.youkuaiyun.com/WhiteEmperor/article/details/109093125</guid><author>WhiteEmperor</author><pubDate>Thu, 15 Oct 2020 11:52:20 +0800</pubDate><description><![CDATA[版本整理：

Spring版本：5.2.0.RELEASE

JDK版本：1.8.0_151

IDEA版本：2018.2.3

Gradle：目前不需要安装，在编译完成后根据提示安装对应版本即可

一、Spring源码下载

1.进入Spring官网https://spring.io/，跳转到页面最下方git链接，点击进入github



2.在git中进入Spring-framework仓库



3.选择要下载的Spring分支版本，推荐下载release版本，因为这种版本属于稳定版，我下载的是5.]]></description><category></category></item><item><title><![CDATA[Mysql如何选择合适的索引]]></title><link>https://blog.youkuaiyun.com/WhiteEmperor/article/details/107850737</link><guid>https://blog.youkuaiyun.com/WhiteEmperor/article/details/107850737</guid><author>WhiteEmperor</author><pubDate>Thu, 06 Aug 2020 23:02:05 +0800</pubDate><description><![CDATA[对于我们之前创建的表：employees



假设我们执行如下SQL：EXPLAIN select * from employees where name &gt; 'a';



可见上方并未走索引，而当我们执行下方SQL的时候，他走了索引：

EXPLAIN select * from employees where name &gt; 'zzz';



那么Mysql到底是如何选择索引的呢？我们可以选择trace工具来查看Mysql选择索引的过程。

注意：trace工具开启会影响Mysql性..]]></description><category></category></item><item><title><![CDATA[Explain详解与索引实践]]></title><link>https://blog.youkuaiyun.com/WhiteEmperor/article/details/107621990</link><guid>https://blog.youkuaiyun.com/WhiteEmperor/article/details/107621990</guid><author>WhiteEmperor</author><pubDate>Fri, 31 Jul 2020 00:22:55 +0800</pubDate><description><![CDATA[Explain工具介绍 

使用EXPLAIN关键字可以模拟优化器执行SQL语句，分析你的查询语句或是结构的性能瓶颈 

在 select 语句之前增加 explain 关键字，MySQL 会在查询上设置一个标记，执行查询会返回执行计划的信息，而不是 

执行这条SQL 

注意：如果 from 中包含子查询，仍会执行该子查询，将结果放入临时表中
...]]></description><category></category></item><item><title><![CDATA[Mysql索引底层数据结构与算法]]></title><link>https://blog.youkuaiyun.com/WhiteEmperor/article/details/107614306</link><guid>https://blog.youkuaiyun.com/WhiteEmperor/article/details/107614306</guid><author>WhiteEmperor</author><pubDate>Mon, 27 Jul 2020 19:51:42 +0800</pubDate><description><![CDATA[先给大家声明几个概念：

索引：索引是帮助MySQL高效获取数据的排好序的数据结构

I/O：从磁盘读取数据的一次操作叫做一次I/O，整个查询过程最耗费性能的步骤。

数据页：它是InnoDB管理存储空间的基本单位，数据页是数据文件中的最小存储单元，每个数据页保存一个数据库节点。一个页的大小Mysql一般默认是16KB。

聚簇索引：对于我们的数据库存储结构中，如果叶子节点保存了完整的数据，那么这个就叫做聚簇索引。

非聚簇索引：对于我们的数据库存储结构中，如果叶子节点只保存了真实数据的内存地址，那么这个就]]></description><category></category></item><item><title><![CDATA[Swagger2Markup导出AscIIDoc接口说明文档]]></title><link>https://blog.youkuaiyun.com/WhiteEmperor/article/details/92584658</link><guid>https://blog.youkuaiyun.com/WhiteEmperor/article/details/92584658</guid><author>WhiteEmperor</author><pubDate>Mon, 17 Jun 2019 11:08:29 +0800</pubDate><description><![CDATA[Swagger2Markup导出AscIIDoc接口说明文档背景SwaggerSpringfox简介注解说明Swagger2Markup
背景
文档是每一个开发人员的痛点，自己开发的时候不想写文档，看别人代码的时候希望别人写文档。而原来大家都是通过手写文档来完成这个工作，缺点如下：
•	前后端联调接口，需要不断的更新接口文档，一般是文档跟不上接口变化的节奏；
•	接口返回结果不明确；
•	不能直接...]]></description><category></category></item><item><title><![CDATA[JS实现文字转语音播放]]></title><link>https://blog.youkuaiyun.com/WhiteEmperor/article/details/92568232</link><guid>https://blog.youkuaiyun.com/WhiteEmperor/article/details/92568232</guid><author>WhiteEmperor</author><pubDate>Mon, 17 Jun 2019 09:49:37 +0800</pubDate><description><![CDATA[JS实现文字转语音播放背景实现方式第一种：百度文字转语音开放API第二种：微软TTS语音引擎第三种：SpeechSynthesisUtterance总结
背景
在做项目的过程中，经常会遇到场景是客户要求播放语音的场景，所以将JS实现文字转语音播放的各种实现方式做统一整理。
实现方式
第一种：百度文字转语音开放API
注意：本方式一定要有外网，可以访问百度，不然无法远程调用百度接口。
接口：http...]]></description><category></category></item></channel></rss>