自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

了不起的盖茨比的博客

如果把一切都准备好了再前行,那我们永远迈不出第一步。

  • 博客(233)
  • 资源 (3)
  • 收藏
  • 关注

原创 重学Java的第一章

今年的行情很差,差到很多人都没有办法找到工作,博主也是一个菜逼,找了一家小破公司,导致我那段时间很迷茫,也是也很焦虑,思考了很多,觉得我自己学的已经够多了,但是每一次面试,博主都是没有好好的准备的,导致找到的工作也不是很好,现在这家公司也不是很好,领导天天PUA我,这次没有像之前一样,直接离职,博主知道现在的行情,都是混口饭。我开始反思,我发现我学的东西很多,都是没有串起来,导致我整个的知识体系也没有。那么就打碎掉吧。从头再来,不丢人。于是重学Java吧!玩了一年多了,突然发现重新捡起来学习,有点难!

2023-06-10 17:29:40 802 1

原创 Spring Bean的作用域

前面的博客我们已经介绍完Spring的依赖的查找来源,依赖注入的来源等等相关知识,今天我们继续来介绍Spring的Bean的作用域。实现 Scope注册 Scope配置

2022-11-28 09:53:38 471 1

原创 你不知道的Spring的依赖的查找和注入的来源

前面的博客我们已经介绍完了spring的依赖的查找和注入的方式,这篇博客我们主要介绍下spring的依赖的查找和注入的来源。

2022-11-25 14:32:43 832

原创 万字博客带你全面剖析Spring的依赖注入

前面的博客我们已经写了Spring的依赖查找,这篇博客我们来了解写Spring的依赖注入。手动模式 - 配置或者编程的方式, 提前安排注入规则自动模式 - 实现方提供依赖自动关联的方式, 按照內建的注入规则依赖注入的类型官方说明优点官方说明实现方法下面我们来展示各种代码,具体的如下:XML 资源配置元信息Java 注解配置元信息API 配置元信息byNamebyType7.构造器注入实现方法下面来展示示例代码XML 资源配置元信息Java 注解配置元信息API 配置元信息const

2022-11-24 16:32:15 416

原创 你真的了解Spring的依赖查找吗?

前面的博客我们介绍了Spring的总览,今天我们来了解下Spring的依赖查找的相关的内容,我们会从它的前世今生来带你了解下,以及各种类型的查找的方式,同时介绍对应的相对比较安全的查找的方式。以及会介绍一些比较常见的面试题,供大家参考。

2022-11-21 17:01:33 680

原创 万字博客带你了解Spring Framework 的全貌

我之前出过一个系列介绍的是spring的源码的系列,但是由于当时个人的水平有限,有些地方介绍的也是模棱两可的,打算重启这块内容,上次只是介绍其中的一部分,例如国际化,事件等等这块的源码都没有介绍,还有事务这块内容。spring现在也不单单是一个简简单单的只是spring framework,它有很广的生态,但是这些所有的生态都是基于spring framework来的,今天我们就来全览一下spring的内容,同时介绍一下IOC,以及spring是如何实现IOC的,还有就是spring Bean 的一些基础的

2022-11-18 10:37:52 831 1

原创 MySQL是怎么保证主备一致的?

前面的博客我们介绍了binlog的作用,大家知道 binlog 可以用来归档,也可以用来做主备同步,但它的内容是什么样的呢?为什么备库执行了 binlog 就可以跟主库保持一致了呢?今天我就正式地和你介绍一下它。毫不夸张地说,MySQL 能够成为现下最流行的开源数据库,binlog 功不可没。在最开始,MySQL 是以容易学习和方便的高可用架构,被开发人员青睐的。而它的几乎所有的高可用架构,都直接依赖于 binlog。虽然这些高可用架构已经呈现出越来越复杂的趋势,但都是从最基本的一主一备演化过来的。

2022-11-07 14:28:09 267

原创 MySQL是怎么保证数据不丢的?

上篇博客我们介绍在业务的高峰期,我们如何提高MySQL的性能,今天我们继续来探讨这个问题。从这篇博客的题目中你可以知道今天的方法是和数据的可靠性有关,主要参考的资料是极客时间的专栏课《MySQL实战45讲》。

2022-11-07 09:50:58 363

原创 MySQL有哪些“饮鸩止渴”提高性能的方法?

上一篇博客我们介绍了MySQL的加锁的规则,以及介绍了行锁以及间隙锁,同时介绍了几种案例,对两个规则和两个优化和一个bug,进行了分别的举例。主要参考的资料是极客时间的专栏课《MySQL实战45讲》

2022-11-05 15:05:20 114

原创 为什么我只改一行的语句,锁这么多?

在上一篇博客中,我和你介绍了间隙锁和 next-key lock 的概念,但是并没有说明加锁规则。间隙锁的概念理解起来确实有点儿难,尤其在配合上行锁以后,很容易在判断是否会出现锁等待的问题上犯错。

2022-11-05 14:04:10 147

原创 幻读?幻读有什么问题?

前面的博客我们介绍完了加锁的机制,这篇博客我们来介绍一下有关幻读的知识,主要参考的资料是极客时间的专栏课《MySQL实战45讲》

2022-11-03 14:56:09 177 1

原创 为什么我只查一行的语句,也执行这么慢?

上一篇博客我们介绍了逻辑相同的SQL的查询的性能的差距,主要的原因是对索引的字段使用函数,这样的索引是失效的。主要参考的资料是极客时间的专栏课《MySQL实战45讲》

2022-10-31 15:12:28 108

原创 为什么这些SQL语句逻辑相同,性能却差异巨大?

前面的博客我们介绍Order By 是如何工作的,同时什么因素会影响到Order By 的性能,今天我们来介绍一样不同的SQL的语句对应性能的影响,主要参考的资料是极客时间的专栏课《MySQL实战45讲》在 MySQL 中,有很多看上去逻辑相同,但性能却差异巨大的 SQL 语句。对这些语句使用不当的话,就会不经意间导致整个数据库的压力变大。我今天挑选了三个这样的案例和你分享。希望再遇到相似的问题时,你可以做到举一反三、快速解决问题。假设你现在维护了一个交易系统,其中交易记录表 包含**交易流水号(trad

2022-10-31 10:27:59 148

原创 MySQL的order by是怎么工作的?

上一篇博客我们对前面的所有博客进行了总结了一下,然后着重的介绍了MySQL的日志的系统,两阶段的提交的,同时异常的重启的,MySQL是如何恢复内容的。同时举了一个例子的,同时这个时候提供了一个很好的解决办法。主要参考的资料是极客时间的专栏课《MySQL实战45讲》

2022-10-29 15:28:25 92

原创 MySQL小结(一)

前面的博客我们介绍了为什么count()函数会慢的情况,同时也提供了一些解决办法,前面的十几篇有关MySQL的博客,今天的我们来总结一下,同时也提供一些解决的办法。

2022-10-28 16:29:22 122

原创 count(*)这么慢,我该怎么办?

前面的博客我们介绍MySQL的表中的数据删除了一半,但是表的大小没有变小,讲了其中的原理,实际上MySQL中的删除数据是逻辑上的删除,并不是物理上的删除,只是标记这条记录是删除的状态,同时这个位置可以被复用,这样就会导致删除数据后,表所占的空间没有减少,我们可以通过重建表的方式,让这些空间得到释放。今天我们要讲的是 count(*)这么慢,我该怎么办?主要参考的资料是极客时间的专栏课《MySQL实战45讲》

2022-10-28 10:56:11 920

原创 为什么我表数据的删除了一半,表文件大小不变?

前面的博客我们介绍完了,为什么有时候MySQL在使用的时候会突然的卡一下,同时还有就是MySQL的redo log 的机制,还有刷脏页的一些机制,今天我们来介绍一下为什么我表的数据的删除了一半,表文件大小不变?主要参考的资料是极客时间的专栏课《MySQL实战45讲》

2022-10-27 16:16:59 195

原创 为什么我的MySQL会“抖”一下?

前面的博客,我们介绍了如何给字符串字段加索引,主要的方法就是用前缀索引的方式,如果这个字符串的前缀的都相同,后缀的不同,我们可以采用将这个字符串进行逆转,再建立索引,就可以提高索引的区分度。还有一种方法就是将这个字符串进行hash,然后将这个hash过后的字符串存到数据库,对这个hash后的字段进行建立索引,这样同样可以索引的区分度。今天我们来介绍一下为什么MySQL有的时候会突然卡一下,俗称突然抖一下。主要参考的资料是极客时间的专栏课《MySQL实战45讲》

2022-10-27 13:15:31 156

原创 MySQL怎么给字符串字段加索引?

上篇博客我们介绍完了索引,以及MySQL选择索引机制,同时以及为什么MySQL选择索引会错。今天我们来讲下怎么给字符串字段加索引?主要参考的资料是极客时间的专栏课《MySQL实战45讲》

2022-10-26 14:42:08 815

原创 MySQL为什么有时候会选错索引?

前面我们介绍过索引,你已经知道了在 MySQL 中一张表其实是可以支持多个索引的。但是,你写 SQL 语句的时候,并没有主动指定使用哪个索引。也就是说,使用哪个索引是由 MySQL 来确定的。今天我们就来说一下MySQL是如何选择索引的,为什么会选错?主要参考的资料是极客时间的专栏课《MySQL实战45讲》

2022-10-26 11:07:46 195

原创 MySQL的普通索引和唯一索引怎么选择?

前面的博客介绍完了MySQL的事务,事务的隔离级别,今天我们来聊一下MySQL的普通索引和唯一索引怎么选择?主要参考的资料是极客时间的专栏课《MySQL实战45讲》

2022-10-25 15:12:27 194

原创 MySQL的事务是隔离还是不隔离

在上一篇博客中我们介绍完了MySQL的全局锁、表锁、行锁,今天我们的博客我们继续介绍事务的一些知识,主要参考的资料是极客时间的专栏课《MySQL实战45讲》

2022-10-25 11:22:53 80

原创 MySQL的行锁

前面的博客我们介绍完了MySQL的全局锁和表锁,由于篇幅的原因,所以今天的我们来介绍下MySQL的行锁,主要参考的资料是极客时间的专栏课《MySQL实战45讲》MySQL 的行锁是在引擎层由各个引擎自己实现的。但并不是所有的引擎都支持行锁,比如 MyISAM 引擎就不支持行锁。不支持行锁意味着并发控制只能使用表锁,对于这种引擎的表,同一张表上任何时刻只能有一个更新在执行,这就会影响到业务并发度。InnoDB 是支持行锁的,这也是 MyISAM 被 InnoDB 替代的重要原因之一。

2022-10-24 15:34:00 1666

原创 MySQL的全局锁和表锁

上一篇博客我们介绍完了MySQL的索引的一些机制,这篇博客我们来介绍一下MySQL的全局锁和表锁,主要参考的资料是极客时间的专栏课《MySQL实战45讲》

2022-10-24 11:06:58 96

原创 MySQL深入浅出索引(下)

上一篇博客我们只是简单的了解下MySQL的索引的一些知识,由于篇幅的原因,所以我们这儿分成了两篇博客,继续介绍我们的索引的知识,主要参考的资料是极客时间的专栏课《MySQL实战45讲》

2022-10-21 15:38:45 126

原创 MySQL深入浅出索引(上)

前面的博客我们介绍完了MySQL的基础架构、日志系统、事务的一些基础知识,今天我们来简单的介绍一下索引,由于篇幅的原因,会分成上下两篇博客。主要参考的资料是极客时间的专栏课《MySQL实战45讲》提到数据库索引,我想你并不陌生,在日常工作中会经常接触到。比如某一个 SQL 查询比较慢,分析完原因之后,你可能就会说“给某个字段加个索引吧”之类的解决方案。但到底什么是索引,索引又是如何工作的呢?今天就让我们一起来聊聊这个话题吧。一句话简单来说,索引的出现其实就是为了提高数据查询的效率,就像书的目录一样。

2022-10-21 13:54:28 99

原创 事务隔离:为什么你改了我还看不见?

前面的博客,我们了解了MySQL的基础的架构,分析一个查询的语句是如何执行的,已经一个更新的语句是怎么执行的,同时了解了MySQL的日志系统,同时的两阶段提交的原理。今天我们来讲下MySQL的事务,主要参考的资料是极客时间的专栏课《MySQL实战45讲》

2022-10-20 16:00:49 93

原创 一条SQL更新语句是如何执行的?

前面的博客我们知道了MySQL的基础的架构,同时知道了MySQL比较核心的Server层,主要是包括连接器、查询缓存、分析器、优化器、执行器。同时我们知道一条的查询语句是如何执行的。今天我们要知道一条SQL更新语句是如何执行的?主要参考的资料是极客时间的专栏课《MySQL实战45讲》

2022-10-19 15:39:14 191

原创 MySQL的基础架构-一条查询语句是如何执行的?

今天我们开启一个新的篇章,就是开始学习我们的MySQL,每次的面试我都是MySQL这块异常的薄弱,每次一问MySQL,除了会写点增删查改,一些优化的手段也是不知道,导致这块的面试的效果很不好,接下来,我们就开始系统的学习一下MySQL,主要参考的资料是极客时间的专栏课《MySQL实战45讲》

2022-10-19 10:31:09 124

原创 带你阅读JDK1.8的HashMap源码(一)

前面的博客的我们简单的介绍完了红黑树,主要就是为了今天看1.8的HashMap的代码准备的,因为1.8的HashMap的源码有一个树化的过程,所以我们先简单的谈了下红黑树。这篇博客主要介绍了1.8JDK的HashMap的方法,大概的介绍了流程,有关红黑树的操作,下篇博客我们继续介绍。

2022-09-14 16:39:01 284

原创 浅谈红黑树

今天我们来简单的了解一下一种比较难的数据结构,红黑树,因为最近在看1.8的hashmap的树化的操作,这儿的树就是红黑树,所以我们这儿先看看对应红黑树的前置的知识,让我们在看hashmap的源码的时候没有那么的吃力,好了,废话不多说,直接上干货。红黑树是平衡二叉查找树的一种。为了深入理解红黑树,我们需要从二叉查找树开始讲起。每个结点或是红的,或是黑的根节点是黑的每个叶结点是黑的如果一个结点是红的,则它的两个儿子都是黑的对每个结点,从该结点到其子孙节点的所有路径上包含相同数目的黑结点。

2022-09-08 16:15:50 133

原创 Linux初始化(下):从_start到第一个进程

本篇博客参考《操作系统实战 45 讲》今天我们继续来研究 Linux 的初始化流程,为你讲解如何解压内核,然后讲解 Linux 内核第一个 C 函数。最后,我们会用 Linux 的第一个用户进程的建立来收尾。如果用你上手去玩一款新游戏做类比的话,那么上节课只是新手教程,而这节课就是更深入的实战了。后面你会看到很多熟悉的"面孔",像是我们前面讲过的 CPU 工作模式、MMU 页表等等基础知识,这节课都会得到运用。今天我们讲得内容有点多,我们从_start开始到startup32、startup64。

2022-08-25 14:08:19 1275

原创 Linux初始化(上):GRUB与vmlinuz的结构

本篇博客参考《操作系统实战 45 讲》在前面的课程中,我们建好了二级引导器,启动了我们的Cosmos,并进行了我们Cosmos的Hal层初始化。我会用两篇博客带你领会Linux怎样做初始化。虽然我们自己具体实现过了初始化,不过我们也不妨看看Linux的初始化流程,借鉴一下Linux开发者的玩法。这篇博客,我会先为你梳理启动的整体流程,重点为你解读Linux上 GRUB 是怎样启动,以及内核里的“实权人物”——vmlinuz内核文件是如何产生和运转的。下节课,我们从setup.bin文件的_start。...

2022-08-11 16:29:31 1258

原创 第一个C函数:如何实现板级初始化?

本篇博客参考《操作系统实战 45 讲》前面三篇博客,我们为调用Cosmos的第一个 C 函数hal_start做了大量工作。这节课我们要让操作系统Cosmos里的第一个 C 函数真正跑起来啦,也就是说,我们会真正进入到我们的内核中。今天我们会继续在这个hal_start函数里,首先执行板级初始化,其实就是hal层(硬件抽象层,下同)初始化,其中执行了平台初始化,hal层的内存初始化,中断初始化,最后进入到内核层的初始化。这节课的配套代码,你可以从这里下载。...

2022-08-10 10:22:38 271 1

原创 设置工作模式与环境(下):探查和收集信息

本篇博客参考《操作系统实战 45 讲》上一篇博客我们动手实现了自己的二级引导器。今天这节课我们将进入二级引导器,完成具体工作的环节。在二级引导器中,我们要检查 CPU 是否支持 64 位的工作模式、收集内存布局信息,看看是不是合乎我们操作系统的最低运行要求,还要设置操作系统需要的 MMU 页表、设置显卡模式、释放中文字体文件。今天博客的配套代码,你可以点击这里,自行下载。...

2022-08-03 09:25:10 388

原创 设置工作模式与环境(中):建造二级引导器

本篇博客参考《操作系统实战45讲》上篇博客的我们建造了属于我们的“计算机”,并且在上面安装好了GRUB。这节课我会带你一起实现二级引导器这个关键组件。看到这儿你可能会问,GRUB不是已经把我们的操作系统加载到内存中了吗?我们有了GRUB,我们为什么还要实现二级引导器呢?这里我要给你说说我的观点,二级引导器作为操作系统的先驱,它需要收集机器信息,确定这个计算机能不能运行我们的操作系统,对CPU、内存、显卡进行一些初级的配置,放置好内核相关的文件。解析内核文件、收集机器环境信息模块。。中。...

2022-08-01 11:24:43 303

原创 手写操作系统-环境的建立

上一篇博客由于我们使用的虚拟机导致无法启动对应的虚拟机,然后就不了了之,今天我带领着你们来搭建对应的环境。上一篇博客的地址。

2022-07-31 18:11:28 350 1

原创 设置工作模式与环境(上):建立计算机

本篇博客参考《操作系统实战45讲》请不要在虚拟机中安装虚拟机操作,没有用。上篇博客我们介绍了Linux中的自旋锁和信号量如何实现的,接下来的博客就应该一步步的建立我们的操作系统,今天我们先来建立我们的计算机。接下来的三篇博客,我们会一起完成一个壮举,从GRUB老大哥手中接过权柄,让计算机回归到我们的革命路线上来,为我们之后的开发自己的操作系统做好准备。具体我是这样来安排的,今天这篇博客,我们先来搭好操作系统的测试环境。希望今天这节课给你带来成就感,虽然我们才走出了万里长征的第一步。https。...

2022-07-29 16:09:22 229 2

原创 Linux的自旋锁和信号量如何实现?

本篇博客参考《操作系统实战45讲》上节博客,我们学习了解决数据同步问题的思路与方法。Linux作为成熟的操作系统内核,当然也有很多数据同步的机制,它也有原子变量、开启和关闭中断、自旋锁、信号量。那今天我们就来探讨一下这些机制在Linux中的实现。看看Linux的实现和前面我们自己的实现有什么区别,以及Linux为什么要这么实现,这么实现背后的机理是什么。锁,保证了数据的安全访问,但是它给程序的并行性能造成了巨大损害,所以在设计一个算法时应尽量避免使用锁。httpshttps。...

2022-07-28 15:34:38 434

原创 你了解数据同步吗?

本篇博客参考《操作系统实战45讲》上篇博客主要介绍的是程序放在什么地方,开发操作系统要了解的最核心的硬件——CPU、MMU、Cache、内存,知道了它们的工作原理。在程序运行中,它们起到了至关重要的作用。在开发我们自己的操作系统以前,还不能一开始就把机器跑起来,而是先要弄清楚数据同步的问题。如果不解决掉数据同步的问题,后面机器跑起来,就会出现很多不可预知的结果。通过这篇博客,我会给你讲清楚为什么在并发操作里,很可能得不到预期的访问数据,还会带你分析这个问题的原因以及解决方法。原子变量,在只有。...

2022-07-27 15:46:40 535

手动模拟springMVC

手动的模拟springMVC,让你对springMVC理解的更加深刻。具体的实现逻辑可以参考本人的博客。

2020-11-04

并发编程二进阶部分.rar

并发编程进阶部分的博客的资源,主要对一些常用的并发工具类的使用,可以参考笔者的博客对照的阅读。阻塞队列、卖票的例子等等。

2020-06-17

并发编程一之synchronized和volatile.rar

关联自己的博客《并发编程(一)》中的附件,主要提供一些demo供大家演示和使用,主要涉及一些并发的一些的基本使用,包括synchronized关键字、volatile关键字。

2020-06-17

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除