<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[bokerr的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/bokerr</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; bokerr]]></copyright><item><title><![CDATA[千呼万唤始出来 JDK 21 LTS, 久等了]]></title><link>https://blog.youkuaiyun.com/bokerr/article/details/133224255</link><guid>https://blog.youkuaiyun.com/bokerr/article/details/133224255</guid><author>bokerr</author><pubDate>Tue, 26 Sep 2023 07:52:36 +0800</pubDate><description><![CDATA[以前大家都说：他发任他发，我用JAVA 8抱歉，这次JDK 21 我不得不使用了已知使用较为广泛的几个 LTS版本是 (Long Term Support) ：JDK 8 、JDK 11、JDK 17。]]></description><category></category></item><item><title><![CDATA[流言粉碎机：JAVA使用 try catch会影响性能]]></title><link>https://blog.youkuaiyun.com/bokerr/article/details/122655795</link><guid>https://blog.youkuaiyun.com/bokerr/article/details/122655795</guid><author>bokerr</author><pubDate>Sun, 23 Jan 2022 19:37:30 +0800</pubDate><description><![CDATA[流言粉碎机：JAVA使用 try catch会影响性能一、JVM 异常处理逻辑二、关于JVM的编译优化1. 分层编译2. 即时编译器1. 解释模式2. 编译模式3. 提前编译器：jaotc三、关于测试的约束执行用时统计编译器优化的因素关于指令重排序四、测试代码五、解释模式下执行测试六、编译模式测试七、结论
前言：

不知道从何时起，传出了这么一句话：Java中使用try catch 会严重影响性能。

然而，事实真的如此么？我们对try catch 应该畏之如猛虎么？
一、JVM 异常处理逻辑


Java]]></description><category></category></item><item><title><![CDATA[Jvm之直接内存与非直接内存]]></title><link>https://blog.youkuaiyun.com/bokerr/article/details/121986598</link><guid>https://blog.youkuaiyun.com/bokerr/article/details/121986598</guid><author>bokerr</author><pubDate>Fri, 17 Dec 2021 00:17:34 +0800</pubDate><description><![CDATA[直接内存


直接内存：概指系统内存，而非堆内存，不指定大小时它的大小默认与堆的最大值-Xmx参数值一致。


非直接内存： 也可以称之为堆内存，运行JVM都会预先分配一定内存，我们把JVM管理的这些内存称为堆内存(非操作系统直接内存)，JVM会对这些内存空间的分配和回收进行管理。


所谓 直接的关系指的是与底层操作系统的关系。
直接  非直接内存的概念与NIO有非常大的关联；


在NIO之前，java.io 的方式是：
 磁盘IO --&gt; 直接内存[系统内核态] --&gt;   非直接(堆)内]]></description><category></category></item><item><title><![CDATA[letcode-Z字变形]]></title><link>https://blog.youkuaiyun.com/bokerr/article/details/121005666</link><guid>https://blog.youkuaiyun.com/bokerr/article/details/121005666</guid><author>bokerr</author><pubDate>Thu, 28 Oct 2021 00:52:42 +0800</pubDate><description><![CDATA[题目
将一个给定字符串 s 根据给定的行数 numRows ，以从上往下、从左到右进行 Z 字形排列。
比如输入字符串为 “PAYPALISHIRING” 行数为 3 时，排列如下：

之后，你的输出需要从左往右逐行读取，产生出一个新的字符串，比如：“PAHNAPLSIIGYIR”。
请你实现这个将字符串进行指定行数变换的函数：
string convert(string s, int numRows);
来源：力扣（LeetCode）
链接：https://leetcode-cn.com/problems]]></description><category></category></item><item><title><![CDATA[letcode-动态规划解最长回文子串(消去二维数组)]]></title><link>https://blog.youkuaiyun.com/bokerr/article/details/120983363</link><guid>https://blog.youkuaiyun.com/bokerr/article/details/120983363</guid><author>bokerr</author><pubDate>Tue, 26 Oct 2021 23:56:46 +0800</pubDate><description><![CDATA[动态规划解最长回文子串题目解题思路最终代码
题目
示例 1：
输入：s = "babad"
输出："bab"
解释："aba" 同样是符合题意的答案。

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

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

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

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

来源：力扣（LeetCode）
链接：https://leetcode-cn.com/]]></description><category></category></item><item><title><![CDATA[MySQL之Innodb存储引擎事务的实现]]></title><link>https://blog.youkuaiyun.com/bokerr/article/details/120688894</link><guid>https://blog.youkuaiyun.com/bokerr/article/details/120688894</guid><author>bokerr</author><pubDate>Sun, 17 Oct 2021 22:49:20 +0800</pubDate><description><![CDATA[Innodb之事务一、基本概念事务的特性：ACID二、事务的实现三、事务控制语句四、隐式事务提交的SQL语句五、事务操作的统计六、事务隔离级别七、分布式事务八、不好的事务习惯九、长事务
一、基本概念


与 锁 一样，事务也是数据库区别于文件系统的重要特性之一。


事务会把数据库从一种状态转换为另一种一致的状态。&lt;假如整个世界是一个数据库系统，我们的任意行为都是在把世界从一个状态转换为另一个状态，区别是我们只管做，却没有回滚按钮。&gt;


也可以说：事务是访问并更新数据库中各种数据的一个程序的基]]></description><category></category></item><item><title><![CDATA[MySQL之Innodb存储引擎锁]]></title><link>https://blog.youkuaiyun.com/bokerr/article/details/120638797</link><guid>https://blog.youkuaiyun.com/bokerr/article/details/120638797</guid><author>bokerr</author><pubDate>Sun, 10 Oct 2021 15:49:44 +0800</pubDate><description><![CDATA[Innodb存储引擎之锁一、概述二、lock 与 latch三、Innodb存储引擎中的锁锁一致性非锁定读一致性锁定读自增长与锁外键与锁四、锁的算法锁的算法Phantom Problem 幻读问题五、锁的问题脏读不可重复读丢失更新六、阻塞七、死锁八、锁升级
一、概述
数据库需要尽可能的提高并发访问效率，还要能确保每个用户能以一致的方式读取和修改数据，根据此问题诞生了锁机制。
锁是数据库系统区别于文件系统的一个非常重要的特性，它用于管理对共享资源的并发访问，保证各个用户访问数据一致和完整。
Innodb 提供]]></description><category></category></item><item><title><![CDATA[MySQL之Innodb索引与算法]]></title><link>https://blog.youkuaiyun.com/bokerr/article/details/120630302</link><guid>https://blog.youkuaiyun.com/bokerr/article/details/120630302</guid><author>bokerr</author><pubDate>Thu, 07 Oct 2021 00:49:35 +0800</pubDate><description><![CDATA[Innodb 索引与算法概述数据结构与算法二分查找二叉查找树和平衡二叉树二叉查找树平衡二叉树B+树B+树完整定义关于 M 和 L的选定案例B+树索引聚集索引辅助索引Cardinality 值Cardinality定义Cardinality的更新B+树索引的使用联合索引覆盖索引优化器选择不使用索引的情况索引提示Multi-Range Read 优化 (MRR)Index Condition Pushdown 优化 （ICP）哈希算法全文检索
概述
索引太少，查询效率低；索引太多程序性能受到影响，索引的使用应该]]></description><category></category></item><item><title><![CDATA[MySQL之Innodb存储引擎的表]]></title><link>https://blog.youkuaiyun.com/bokerr/article/details/120623770</link><guid>https://blog.youkuaiyun.com/bokerr/article/details/120623770</guid><author>bokerr</author><pubDate>Wed, 06 Oct 2021 15:26:50 +0800</pubDate><description><![CDATA[Innodb 存储引擎表索引组织表Innodb逻辑存储结构表空间段区页行Innodb 行记录格式CompactRedundant行溢出数据Compressed 和 Dynamic 行记录格式char 的行结构存储Innodb 数据页结构视图 View分区表
索引组织表
Innodb 存储引擎表中，数据都是根据主键顺序存放，这种结构成为索引组织表，所以数据即索引，索引即数据。如果没有显式定义主键，MySQL将按如下方式选举主键：


判断表中是否有唯一非空索引，如果有 以第一个建立索引 的唯一非空索引列为主键]]></description><category></category></item><item><title><![CDATA[记录一次被骗经历]]></title><link>https://blog.youkuaiyun.com/bokerr/article/details/120623496</link><guid>https://blog.youkuaiyun.com/bokerr/article/details/120623496</guid><author>bokerr</author><pubDate>Wed, 06 Oct 2021 12:36:38 +0800</pubDate><description><![CDATA[我根据自己被骗经历总结了下：

望谨记，骗子做的第一步都是为了取得你的信任。
不要盲目相信权威，可能所谓的权威没有你想象得那么靠谱。
不要盲目自信，太相信自己的判断也会是件可怕的事；人外有人，天外有天，永远正确。
遏制冲动，不论什么时候，都要用脑子思考，而不是跟随你的情绪和欲望，但是这点恰恰是最难的。
醒悟后尽快走出那种情绪，糟心不会让生活变得更好。

我的被骗经历，来自于某个过于相信的人或事物，当自己进行粗略求证之后，就觉得可信了。现实生活中我也不是那么容易相信别人的那种人，这一切或许源于自负吧。我的被骗]]></description><category></category></item><item><title><![CDATA[MySQL数据库系统中的文件]]></title><link>https://blog.youkuaiyun.com/bokerr/article/details/120614633</link><guid>https://blog.youkuaiyun.com/bokerr/article/details/120614633</guid><author>bokerr</author><pubDate>Wed, 06 Oct 2021 01:12:18 +0800</pubDate><description><![CDATA[Innodb存储引擎的文件概述参数文件日志文件错误日志慢查询日志查询日志二进制日志 binary log二进制日志的配置二进制日志的作用二进制日志的保存socket 套接字文件pid文件MySQL表结构定义文件存储引擎文件
概述
本文主要讲述MySQL数据库和Innodb存储引擎表的各种类型文件，主要包括如下内容：


参数文件


日志文件


socket 文件


pid文件


MySQL表结构定义文件


存储引擎文件


参数文件
启动时它告诉MySQL实例，在哪里可以找到数据库相关文件，除此之]]></description><category></category></item><item><title><![CDATA[MySQL之Innodb存储引擎介绍]]></title><link>https://blog.youkuaiyun.com/bokerr/article/details/120606971</link><guid>https://blog.youkuaiyun.com/bokerr/article/details/120606971</guid><author>bokerr</author><pubDate>Tue, 05 Oct 2021 13:02:58 +0800</pubDate><description><![CDATA[Innodb存储引擎一、概述二、Innodb体系架构后台线程内存池1. 缓冲池2. LRU List、Free List 、Flush List3. 重做日志缓冲 redo log buffer4. 额外的内存池三、CheckPoint技术四、Innodb关键特性Insert buffer (插入缓冲)insert buffer 定义Insert buffer 的实现Merge Insert Buffer两次写 doublewrite自适应哈希索引异步IO刷新邻接页
一、概述
从MySQL5.5版本开始，I]]></description><category></category></item><item><title><![CDATA[Innodb学习之MySQL体系结构]]></title><link>https://blog.youkuaiyun.com/bokerr/article/details/120605405</link><guid>https://blog.youkuaiyun.com/bokerr/article/details/120605405</guid><author>bokerr</author><pubDate>Mon, 04 Oct 2021 18:04:01 +0800</pubDate><description><![CDATA[MySQL之体系结构数据库和数据库实例MySQL体系结构MySQL各存储引擎特性Innodb存储引擎MyISAMBDB：MemoryArchiveFederated
数据库和数据库实例


数据库是所有文件的集合，是依照某种数据模型组织起来的数据集合。


而数据库实例，指的是程序，是位于用户与操作系统之间的一层数据管理软件，用户通过数据库实例对数据库进行操作。


数据库不是文件系统，它区别于文件系统的不同之处在于，数据库需要支持锁、支持事务等。
MySQL体系结构
在MySQL 5.1中，MySQL A]]></description><category></category></item><item><title><![CDATA[letcode-不含连续1的非负整数]]></title><link>https://blog.youkuaiyun.com/bokerr/article/details/120246143</link><guid>https://blog.youkuaiyun.com/bokerr/article/details/120246143</guid><author>bokerr</author><pubDate>Sun, 12 Sep 2021 03:52:47 +0800</pubDate><description><![CDATA[不含连续1的非负整数
刚开始写了个暴力循环，发现计算到：1000000000 时超时了，然后自己单独计算发现需要4秒才能算完，那么O(n) 时间遍历肯定是不行了。

根据题目提示：二进制不包含连续1，那么应该使用动态规划。
动态规划的定义之一：将递归算法重新写为非递归算法，该非递归算法需要把递归算法过程中的子问题答案记录到一个表中。
根据该定义，我们对不同的位数的二进制数进行统计，有多少个合规数：

一、 1 位时：2个
0
1
二、 2位时：3个
00
01
10
三、 3位时：5个
000
001
01]]></description><category></category></item><item><title><![CDATA[Spring源码之spring事务]]></title><link>https://blog.youkuaiyun.com/bokerr/article/details/118003880</link><guid>https://blog.youkuaiyun.com/bokerr/article/details/118003880</guid><author>bokerr</author><pubDate>Thu, 17 Jun 2021 23:11:05 +0800</pubDate><description><![CDATA[spring事务Spring事务事务自定义标签自定义标签解析标签bean 的初始化InfrastructureAdvisorAutoProxyCreator获取增强方法获取所有增强中内适用于当前方法的增强TransactionInterceptor 事务增强的实现创建事务：回滚事务提交
Spring事务
spring声明式事务让我们从复杂的事务处理中得以脱身，我们可以不再去关注获得、关闭连接、事务提交、和回滚操作；简单来说事务可以做到在发生异常时进行回滚。
事务自定义标签
自定义标签
spring事务的开关]]></description><category></category></item><item><title><![CDATA[Spring源码之springMVC]]></title><link>https://blog.youkuaiyun.com/bokerr/article/details/117755444</link><guid>https://blog.youkuaiyun.com/bokerr/article/details/117755444</guid><author>bokerr</author><pubDate>Wed, 09 Jun 2021 22:16:31 +0800</pubDate><description><![CDATA[web.xml
它的作用是配置初始化信息，如web页面、servlet、servlet-mapping、filter、listener、启动加载级别等。
SpringMVC 通过servlet拦截所有的URL来达到控制的目的，所以它必须要有web.xml
比较关键的配置是：


contextConfigLocation 配置spring配置文件地址


DispatcherServlet 前端控制器


程序入口
ContextLoaderListener.initWebApplicationContex]]></description><category></category></item><item><title><![CDATA[纪念伟人逝世]]></title><link>https://blog.youkuaiyun.com/bokerr/article/details/117161213</link><guid>https://blog.youkuaiyun.com/bokerr/article/details/117161213</guid><author>bokerr</author><pubDate>Sat, 22 May 2021 14:55:18 +0800</pubDate><description><![CDATA[一位伟人在2021年5月22日13点07分，与世长辞。
]]></description><category></category></item><item><title><![CDATA[Spring源码之-AOP]]></title><link>https://blog.youkuaiyun.com/bokerr/article/details/117003270</link><guid>https://blog.youkuaiyun.com/bokerr/article/details/117003270</guid><author>bokerr</author><pubDate>Wed, 19 May 2021 00:07:20 +0800</pubDate><description><![CDATA[Spring源码 - AOP2.必要的准备工作什么是代理模式？3.大话AOP那么AOP 具体是什么呢？实现AOP的方式二、动态AOP自定义标签1、JDK动态代理2、CGLIB 代理三、创建AOP代理1.获取所有增强器2.寻找匹配的增强器3.创建代理四、创建AOP静态代理1.自定义标签2.织入结语

PS * 文中代码均为伪代码，本文基于spring 5.0 ，如有谬误，感谢指正！！！

# 一、大话AOP
## 1.AOP的概念


AOP（Aspect Oriented Programming），即面向切]]></description><category></category></item><item><title><![CDATA[Spring源码之容器的功能拓展-ApplicationContext]]></title><link>https://blog.youkuaiyun.com/bokerr/article/details/116382233</link><guid>https://blog.youkuaiyun.com/bokerr/article/details/116382233</guid><author>bokerr</author><pubDate>Mon, 03 May 2021 23:55:30 +0800</pubDate><description><![CDATA[容器的功能拓展一、解析预备 刷新上下文环境  例如对系统属性或者环境变量进行校验和准备二、初始化 BeanFactory 并进行 Xml 配置文件的读取三、对BeanFactory 各种功能填充四、激活以及注册各种 BeanFactoryPostProcessor 后处理器五、注册后处理器 BeanPostProcessor后续环节
PS * 本文代码基本为伪代码，注释为个人理解，水平有限，如有谬误，感谢指正。
关于spring的容器，除了BeanFactory以及它的默认实现类XmlBeanFactory]]></description><category></category></item><item><title><![CDATA[Spring源码之bean的加载]]></title><link>https://blog.youkuaiyun.com/bokerr/article/details/116110238</link><guid>https://blog.youkuaiyun.com/bokerr/article/details/116110238</guid><author>bokerr</author><pubDate>Sat, 24 Apr 2021 23:20:28 +0800</pubDate><description><![CDATA[spring 源码阅读 -- bean 的加载1. FactoryBean 的使用2. 缓存中获取单例 bean；3. 从 bean 实例获取对象，4. 获取单例 bean (从缓存加载失败)；5. 创建 bean  (createBean)6. 循环依赖7. 创建 bean

本文，入口：
&lt;&gt; spring-framework-5.0.x\spring-beans\src\main\java\org\springframework\beans\factory\support\Abstract]]></description><category></category></item></channel></rss>