<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[我知道你是高手的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/jerry010101</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; jerry010101]]></copyright><item><title><![CDATA[水平触发与边沿触发]]></title><link>https://blog.youkuaiyun.com/jerry010101/article/details/130876844</link><guid>https://blog.youkuaiyun.com/jerry010101/article/details/130876844</guid><author>jerry010101</author><pubDate>Thu, 25 May 2023 22:35:50 +0800</pubDate><description><![CDATA[然后它会假设你知道文件描述符已经就绪，并且不会再为那个文件描述符发送更多的就绪通知，直到你做了某些操作导致那个文件描述符不再为就绪状态了。epoll工作在 ET 模式的时候，必须使用非阻塞套接口，以避免由于一个文件句柄的阻塞读/阻塞写操作把处理多个文件描述符的任务饿死。b.用户只读了一部分数据，epoll不通知 （但是客户端再发送信息到读缓冲区就又会通知，即使原先读缓冲区依旧有数据）a.用户不读数据，数据一致在缓冲区中，epoll下次检测的时候就不通知了。c.缓冲区的数据读完了，不通知。]]></description><category></category></item><item><title><![CDATA[正则表达式如何匹配括号]]></title><link>https://blog.youkuaiyun.com/jerry010101/article/details/120461233</link><guid>https://blog.youkuaiyun.com/jerry010101/article/details/120461233</guid><author>jerry010101</author><pubDate>Fri, 24 Sep 2021 18:57:15 +0800</pubDate><description><![CDATA[在用正则表达式匹配小括号()时，应将括号用[]包起来，如下：

regexs = "{\"regexs\":[\"showPlayer[(]'(.*?)'\"]}";
]]></description><category></category></item><item><title><![CDATA[JDK 高版本没有VisualVM]]></title><link>https://blog.youkuaiyun.com/jerry010101/article/details/120245996</link><guid>https://blog.youkuaiyun.com/jerry010101/article/details/120245996</guid><author>jerry010101</author><pubDate>Sun, 12 Sep 2021 01:33:49 +0800</pubDate><description><![CDATA[VisualVM 是一款免费的，集成了多个 JDK 命令行工具的可视化工具，提供强大的分析能力，对 Java 应用程序做性能分析和调优。

在高版本JDK（大于1.8或后期更新的1.8版本）中已经不会再自动集成 VisualVM

1、下载：

地址：https://visualvm.github.io/index.html

下载独立版







2、下载完成后解压

3、配置JDK路径：

打开配置文件



加入JDK 路径

visualvm_jdkhome="C:/envProgram/J..]]></description><category></category></item><item><title><![CDATA[mysql索引长度]]></title><link>https://blog.youkuaiyun.com/jerry010101/article/details/120136562</link><guid>https://blog.youkuaiyun.com/jerry010101/article/details/120136562</guid><author>jerry010101</author><pubDate>Mon, 06 Sep 2021 15:33:42 +0800</pubDate><description><![CDATA[在utf8编码方式下，一个字符占3个字节。
	如果索引字段可以为null，MySQL会使用1个字节标识。
	如果索引字段的类型长度可变，MySQL会使用2个字节标识。
	如果索引字段的类型长度可变，并且可以为null，MySQL会使用1+2=3个字节标识
...]]></description><category></category></item><item><title><![CDATA[Netty中的水平触发和边缘触发]]></title><link>https://blog.youkuaiyun.com/jerry010101/article/details/119792428</link><guid>https://blog.youkuaiyun.com/jerry010101/article/details/119792428</guid><author>jerry010101</author><pubDate>Thu, 19 Aug 2021 00:45:44 +0800</pubDate><description><![CDATA[在非阻塞IO中，通过Selector选出准备好的fd进行操作。有两种模式，一是水平触发（LT），二是边缘触发（ET）。

在LT模式下，只要某个fd还有数据没读完，那么下次轮询还会被选出。而在ET模式下，只有fd状态发生改变后，该fd才会被再次选出。ET模式的特殊性，使在ET模式下的一次轮询必须处理完本次轮询出的fd的所有数据，否则该fd将不会在下次轮询中被选出。

在Netty中，NioChannel体系是水平触发，EpollChannel体系是边缘触发。

从源码中，NioServerSocketCha]]></description><category></category></item><item><title><![CDATA[分区分配算法（Partitioning Placement Algorithm）]]></title><link>https://blog.youkuaiyun.com/jerry010101/article/details/119621847</link><guid>https://blog.youkuaiyun.com/jerry010101/article/details/119621847</guid><author>jerry010101</author><pubDate>Thu, 12 Aug 2021 01:02:06 +0800</pubDate><description><![CDATA[https://blog.youkuaiyun.com/qq_42992084/article/details/106151267
]]></description><category></category></item><item><title><![CDATA[Peterson‘s Algorithm皮特森算法详解]]></title><link>https://blog.youkuaiyun.com/jerry010101/article/details/119583181</link><guid>https://blog.youkuaiyun.com/jerry010101/article/details/119583181</guid><author>jerry010101</author><pubDate>Wed, 11 Aug 2021 00:38:30 +0800</pubDate><description><![CDATA[Peterson算法是实现进程互斥访问临界区的一种方法，避免了单标志法必须交替访问的限制，以及双标志法后检验的“饥饿”问题。

Peterson算法实现如下：


//操作系统 临界区互斥Peterson's Algorithm算法思考
 
Pi:
flag[i] = ture; turn = j;
while (flag[j] &amp;&amp; turn == j);
critical section;// 访问临界区
flag[i] = false;
remainder section;// 剩余区]]></description><category></category></item><item><title><![CDATA[操作系统中调度算法]]></title><link>https://blog.youkuaiyun.com/jerry010101/article/details/119551302</link><guid>https://blog.youkuaiyun.com/jerry010101/article/details/119551302</guid><author>jerry010101</author><pubDate>Tue, 10 Aug 2021 00:52:37 +0800</pubDate><description><![CDATA[FCFS：

SJF：

HRF：

SRF：

SPF：

RR：

PS：

]]></description><category></category></item><item><title><![CDATA[操作系统相关英文缩写]]></title><link>https://blog.youkuaiyun.com/jerry010101/article/details/119525838</link><guid>https://blog.youkuaiyun.com/jerry010101/article/details/119525838</guid><author>jerry010101</author><pubDate>Mon, 09 Aug 2021 01:26:47 +0800</pubDate><description><![CDATA[PT：process table 进程表

PCB： process control block 进程控制块
]]></description><category></category></item><item><title><![CDATA[存储器的分类]]></title><link>https://blog.youkuaiyun.com/jerry010101/article/details/115284296</link><guid>https://blog.youkuaiyun.com/jerry010101/article/details/115284296</guid><author>jerry010101</author><pubDate>Sun, 28 Mar 2021 17:46:51 +0800</pubDate><description><![CDATA[存储器

存储器是计算机系统中的记忆设备，用来存放程序和数据。随着技术的发展，CPU的速度变化迅速，但存储器的速度增加得较慢。这使得计算机的速度在很大程度上受限于存储器速度。为了解决这个问题，设计了各种各样的存储器结构。

存储器分类

按存储器介质分类



按存储方式分类



按在计算机中的作用分类



存储器的层次结构


如图，存储系统层次结构主要体现在缓存-主存和主存-辅存这两个存储层次上。CPU和缓存、主存都能直接交换信息；缓存能直接和CPU、主存交换信息；主存可以和CPU、缓存、辅存交换信]]></description><category></category></item><item><title><![CDATA[定点数]]></title><link>https://blog.youkuaiyun.com/jerry010101/article/details/115223057</link><guid>https://blog.youkuaiyun.com/jerry010101/article/details/115223057</guid><author>jerry010101</author><pubDate>Fri, 26 Mar 2021 01:21:58 +0800</pubDate><description><![CDATA[在现实生活中，我们经常使用整数和小数，不知道你有没有思考过，这些数字在计算机中是如何存储的？

我们学习计算机知识时，经常听到「定点数」和「浮点数」，它们之间有什么区别？

平时说到整数，我们就说它是一个定点数，说到小数，就说它是一个浮点数，这种说法是正确的吗？

这篇文章，我们先来看一下，「定点数」究竟与整数和小数有什么关系。

什么是定点数？

要想理解什么是「定点数」，首先，我们需要理解「定点」究竟是什么意思？

我们都知道，数字既包括整数，又包括小数，而小数的精度范围要比整数大得多，所以如果我们想在]]></description><category></category></item><item><title><![CDATA[原码、反码、补码 详解！]]></title><link>https://blog.youkuaiyun.com/jerry010101/article/details/115221952</link><guid>https://blog.youkuaiyun.com/jerry010101/article/details/115221952</guid><author>jerry010101</author><pubDate>Thu, 25 Mar 2021 23:56:00 +0800</pubDate><description><![CDATA[本篇文章讲解了计算机的原码、反码和补码，并且进行了深入探求了为何要使用反码和补码，以及更进一步的论证了为何可以用反码、补码

一. 机器数和机器数的真值

在学习原码，反码和补码之前， 需要先了解机器数和真值的概念。

1、机器数

一个数在计算机中的二进制表示形式，叫做这个数的机器数。机器数是带符号的，在计算机用机器数的最高位存放符号，正数为0，负数为1。

比如，十进制中的数 +3 ，计算机字长为8位，转换成二进制就是0000 0011。如果是 -3 ，就是 100 00011 。

那么，这里的 00]]></description><category></category></item><item><title><![CDATA[计算机组成原理名词指令缩写]]></title><link>https://blog.youkuaiyun.com/jerry010101/article/details/115190245</link><guid>https://blog.youkuaiyun.com/jerry010101/article/details/115190245</guid><author>jerry010101</author><pubDate>Wed, 24 Mar 2021 23:00:06 +0800</pubDate><description><![CDATA[　CPU、PC、IR、CU、ALU、ACC、MQ、X、MAR、MDR、I/O、MIPS、CPI、FLOPS
　　解：全面的回答应分英文全称、中文名、中文解释三部分。
　　CPU——Central Processing Unit，中央处理机(器)，见7题;
　　PC——Program Counter，程序计数器，存放当前欲执行指令的地址，并可自动计数形成下一条指令地址的计数器;
　　IR——Instruction Register，
　　指令寄存器，存放当前正在执行的指令的寄存器;
　　CU——Control]]></description><category></category></item><item><title><![CDATA[Logback file属性 与 fileNamePattern属性的关系]]></title><link>https://blog.youkuaiyun.com/jerry010101/article/details/109356937</link><guid>https://blog.youkuaiyun.com/jerry010101/article/details/109356937</guid><author>jerry010101</author><pubDate>Thu, 29 Oct 2020 13:49:22 +0800</pubDate><description><![CDATA[官方原文


Note that the file property in RollingFileAppender (the parent of TimeBasedRollingPolicy) can be either set or omitted. By setting the file property of the containing FileAppender, you can decouple the location of the active log file and the locatio]]></description><category></category></item><item><title><![CDATA[JVM老年代和新生代的比例]]></title><link>https://blog.youkuaiyun.com/jerry010101/article/details/109157209</link><guid>https://blog.youkuaiyun.com/jerry010101/article/details/109157209</guid><author>jerry010101</author><pubDate>Mon, 19 Oct 2020 11:14:40 +0800</pubDate><description><![CDATA[在 Java 中，堆被划分成两个不同的区域：新生代 ( Young )、老年代 ( Old )。新生代 ( Young ) 又被划分为三个区域：Eden、From Survivor、To Survivor。
这样划分的目的是为了使 JVM 能够更好的管理堆内存中的对象，包括内存的分配以及回收。
堆的内存模型大致为：



从图中可以看出：堆大小 = 新生代 + 老年代。其中，堆的大小可以通过参数 –Xms、-Xmx 来指定。
默认的，新生代 ( Young ) 与老年代 ( Old ) 的比例的值为 1:.]]></description><category></category></item><item><title><![CDATA[解决unable to find valid certification path to requested target]]></title><link>https://blog.youkuaiyun.com/jerry010101/article/details/107585243</link><guid>https://blog.youkuaiyun.com/jerry010101/article/details/107585243</guid><author>jerry010101</author><pubDate>Sat, 25 Jul 2020 21:28:29 +0800</pubDate><description><![CDATA[原因
Java在访问SSL加密的网站时，需要从JDK的KeyStore 里面去查找相对应得可信证书，如果不能从默认或者指定的KeyStore 中找到可信证书，就会报这个错误。另外，Java所使用的证书仓库并不是Windows系统自带的证书管理。所以即使系统中包含此证书也不可以使用。

解决：

从浏览器下载证书安装到java证书中。

第一步是要下载证书

去你程序要访问的网站，点击那个锁按钮，并点击查看详情（chrome浏览器）



点击View certificate



点击详细信息



复制到]]></description><category></category></item><item><title><![CDATA[go的闭包]]></title><link>https://blog.youkuaiyun.com/jerry010101/article/details/105985857</link><guid>https://blog.youkuaiyun.com/jerry010101/article/details/105985857</guid><author>jerry010101</author><pubDate>Fri, 08 May 2020 00:55:21 +0800</pubDate><description><![CDATA[概念：

闭包可以理解成“定义在一个函数内部的函数“。在本质上，闭包是将函数内部和函数外部连接起来的桥梁。或者说是函数和其引用环境的组合体。闭包的概念可以直接百度或者google详细搜索详细，这里主要是通过几个实例来对闭包进行详解。

实例1：


//函数片段
func add(base int) func(int) int {

	fmt.Printf("%p\n", &amp;base)  ...]]></description><category></category></item><item><title><![CDATA[JIT是什么]]></title><link>https://blog.youkuaiyun.com/jerry010101/article/details/104892259</link><guid>https://blog.youkuaiyun.com/jerry010101/article/details/104892259</guid><author>jerry010101</author><pubDate>Mon, 16 Mar 2020 09:48:48 +0800</pubDate><description><![CDATA[什么是JIT

一些其他解释的网站：http://www.sohu.com/a/169704040_464084

1、动态编译（dynamic compilation）指的是“在运行时进行编译”；与之相对的是事前编译（ahead-of-time compilation，简称AOT），也叫静态编译（static compilation）。

2、JIT编译（just-in-timecompil...]]></description><category></category></item><item><title><![CDATA[springboot报错InvalidConfigurationPropertyNameException， not valid]]></title><link>https://blog.youkuaiyun.com/jerry010101/article/details/104318609</link><guid>https://blog.youkuaiyun.com/jerry010101/article/details/104318609</guid><author>jerry010101</author><pubDate>Fri, 14 Feb 2020 20:21:14 +0800</pubDate><description><![CDATA[新搭建了一个项目，使用的springboot，启动报错如下：


org.springframework.boot.context.properties.source.InvalidConfigurationPropertyNameException: Configuration property name 'application.authorizationInterceptor' is not...]]></description><category></category></item><item><title><![CDATA[spring boot maven 打包提示程序包xxx不存在]]></title><link>https://blog.youkuaiyun.com/jerry010101/article/details/103843784</link><guid>https://blog.youkuaiyun.com/jerry010101/article/details/103843784</guid><author>jerry010101</author><pubDate>Sun, 05 Jan 2020 15:42:18 +0800</pubDate><description><![CDATA[你的A模块是一个spring boot项目，创建生成的pom的中肯定是这样的build的


    &lt;build&gt;
        &lt;plugins&gt;
            &lt;plugin&gt;
                &lt;groupId&gt;org.springframework.boot&lt;/groupId&gt;
            ...]]></description><category></category></item></channel></rss>