自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(83)
  • 收藏
  • 关注

原创 【MVCC】MVCC之通过readview判断事务读取哪个版本(通俗易懂,一文详解!!)

mvcc的实现,基于。(具体就如下图)在 MySQL 存储的数据中,MySQL 会默认添加一些额外的隐含字段(Hidden Field),包括trx_id和等字段。这些字段大多数是用于支持事务和数据恢复等功能。trx_id。

2023-10-11 10:13:48 482

原创 【Tomcat】在SpringBoot项目中,Tomcat是如何处理HTTP请求的

【Tomcat】在SpringBoot项目中,Tomcat是如何处理HTTP请求的

2023-09-10 17:56:38 785 1

原创 【数据结构】List、Set、Map的联系和区别(通俗易懂,清晰直观!!)

【数据结构】List、Set、Map的联系和区别(通俗易懂,清晰直观!!)

2023-09-10 11:39:34 1231

原创 【Redis】Redis内存管理(带你一文速览!!)

因为内存是有限的,如果缓存中的所有数据都是一直保存的话,分分钟直接 Out of memory。另外很多时候,我们的业务场景就是需要某个数据只在某一时间段内存在,比如我们的短信验证码可能只在 1 分钟内有效,用户登录的 token 可能只在 1 天内有效。如果使用传统的数据库来处理的话,一般都是自己判断过期,这样更麻烦并且性能要差很多。

2023-09-09 21:31:13 172

原创 【MySQL】MySQL对于千万级的数据库或者大表怎么处理?

【MySQL】MySQL对于千万级的数据库或者大表怎么处理?

2023-09-09 20:14:04 357

原创 【Redis】Redis如何保证和MySQL数据库的数据一致性(带你一文了解)

MySQL 支持事务,在需要保证一致性的操作中使用事务。通过,并使用 ACID(原子性、一致性、隔离性和持久性)的特性,可以保证 Redis 和 MySQL 数据的一致性。

2023-09-09 19:53:20 2856

原创 【Spring事务】Spring事务的传播机制(通俗易懂)

传播级别一般不需要定义,默认就是PROPAGATION_REQUIRED,除非在嵌套事务的情况。上述描述表格的描述还是比较抽象,下面我们使用一个例子来说明这个传播机制。封装在数据库事务之上的一种事务处理机制。其管理方法有两种,分别是编程式事务以及声明式事务。一般我们使用@Transactional进行声明式事务。

2023-09-09 18:36:58 279

原创 【Mybatis】Mybatis的工作原理

【Mybatis】Mybatis的工作原理

2023-09-09 16:50:58 186

原创 【Docker】Linux下Docker 部署一个SpringBoot项目的完整流程(通俗易懂,简单上手!!)

【Docker】Linux下Docker 部署一个SpringBoot项目的完整流程(通俗易懂,简单上手!!)

2023-09-09 11:39:37 711

原创 【ThreadLocal】Threadlocal的详细解释

【ThreadLocal】Threadlocal的详细解释

2023-09-08 20:48:59 119

原创 【rpc】Dubbo和Zookeeper结合使用,它们的作用与联系(通俗易懂,一文理解)

【rpc】Dubbo和Zookeeper结合使用,它们的作用与联系(通俗易懂,一文理解)

2023-09-08 20:16:13 1139

原创 【JVM】synchronized锁升级的过程

如果对象的Mark Word中的记录的线程ID为0,表示当前没有线程获取锁,则将该线程的ID记录到Mark Word当中,并将对象头指向偏向锁。当一个线程在自旋锁状态下无法获取到锁时,它会升级到重量级锁。重量级锁是一种阻塞锁,它会导致线程进入阻塞状态并释放CPU的执行权。需要注意的是,升级到重量级锁的过程并非是一成不变的,具体实现可能会有不同的策略和优化。锁的具体行为和性能表现还取决于。当一个线程访问被synchronized修饰的代码块的时候,并获取对象的锁时,会。

2023-09-08 12:16:27 677

原创 【计算机网络】两台电脑在一个公司里ping不通,可能导致的原因及解决思路(通俗易懂!迅速了解!!)

【计算机网络】两台电脑在一个公司里ping不通,可能导致的原因及解决思路(通俗易懂!迅速了解!!)

2023-09-08 11:08:35 4281

原创 【Linux】lsof 和 ps命令(让你通晓它们的作用)

lsof 和 ps 都是在 Linux 系统下用于的命令,但它们是有一些区别的,在本文中,我会首先分别介绍lsof命令和ps命令,之后将它们的区别进行对比。

2023-09-08 10:52:44 516

原创 【Linux】Linux突然发现CPU占用100%该怎么办?如何排查进程(带你一文解决)

Linux的CPU发现占用率100%,一般会由什么情况引起?1、进程负载过高:一个或多个进程消耗了大量CPU资源,导致整个系统的CPU占用率升高。 可能的原因包括运行超过预期的任务、过度并发的请求、死循环等。2、错误配置的服务或应用程序:配置错误的服务或应用程序可能导致它们占用过多的CPU资源。 例如,错误的线程池配置、无限递归、频繁的IO操作等。3、恶意软件或病毒:恶意软件或病毒可能在系统中运行并消耗大量CPU资源。 这些恶意程序通常会伪装成正常的进程,使其更难以检测和终

2023-09-07 22:00:19 13114

原创 【数据库】数据库中的三范式(简洁易懂,快速理解!!)

【数据库】数据库中的三范式(简洁易懂,快速理解!!)

2023-09-06 20:51:14 420

原创 【Oracle】通俗易懂带你入门Oracle(初学者必看!!)

【Oracle】通俗易懂带你入门Oracle(初学者必看!!)

2023-09-02 17:26:08 216

原创 【SpringBoot】带你迅速弄懂SpringBoot和Spring的区别(通俗易懂!!面试必考!)

Spring是一个轻量级的开源Java框架,用于开发企业级Java应用程序。它提供了一系列的模块和工具,用于解决企业级应用程序开发中的各种问题,比如等。Spring可以通过Spring Boot是构建在Spring框架之上的一款开箱即用的框架,对Spring的一些功能做了增强并且简化了Spring应用程序中的开发和部署过程(),并且能够快速启动。SpringBoot采用了约定优于配置的原则,通过自动配置和默认值减少了繁琐的启动步骤,并提供了一系列的启动依赖,使得开发者能够更加专注业务逻辑的实现。

2023-09-02 11:33:59 259

原创 【Git】git常用命令大全(初学者必看!!最强详解!!)

细致且通俗易懂的解释,不看后悔鸭

2023-09-01 22:33:22 193

原创 【TCP】四次挥手(最强详解!!通俗易懂!!)

A:再见,我要关闭了(FIN)B:再见,我要关闭了(FIN)等待2MSL时间后断开连接。B:我知道了(ACK)A:我知道了(ACK)

2023-09-01 16:45:25 2402

原创 【TCP】三次握手(最强详解!!通俗易懂!!)

【TCP】三次握手(最强详解!!通俗易懂!!)

2023-09-01 11:21:41 2709 2

原创 【计算机网络】一文带你弄懂DNS解析过程(最强详解!!)

DNS(Domain Name System)是一个用于将域名(例如www.example.com)转换为对应 IP 地址的协议。它起到了“互联网电话簿”的作用,让我们可以使用简单易记的域名来访问网站,而不需要记住复杂的数字 IP 地址。通俗地说,DNS 协议就像是一个大型的电话簿系统,它帮助我们找到互联网上的网站。假设你想要访问一个网站,比如谷歌(google.com),你会在浏览器中输入这个域名。然后,浏览器会向你所使用的网络提供商的 DNS 服务器发送一个请求,询问:“你们知道谷歌的 IP 地址吗。

2023-08-31 17:19:41 1899

原创 【计算机网络】一文带你清楚了解浏览器中输入url后经历了哪些过程(通俗易懂,超好理解!!)

这是一个比较常见且经典的问题,我们或者用户通过浏览器访问某个网站,比如用户访问www.baidu.com,敲回车之后,浏览器的背后发生了什么,进行了怎么样的操作?

2023-08-31 16:34:25 118

原创 【计算机网络】带你一文搞懂Http和Https的关系和区别!(最强详解!!)

【计算机网络】带你一文搞懂Http和Https的关系和区别!(最强详解!!)

2023-08-30 22:50:30 279

原创 【ArrayList】ArrayList、LinkedList、Vector(最强详解!!)

【java中的List】ArrayList、LinkedList、Vector(最强详解!!)

2023-08-30 21:37:52 318

原创 【java中的Set集合】HashSet、LinkedHashSet、TreeSet(最通俗易懂版!!)

注意:不会按照保存的顺序存储数据(顺序不定),遍历时不能保证下次结果和上次相同。且向HashSet集合中添加元素,HashSet add方法实质是map全局变量调用了put方法,将数据存到了key,因为HashMap的 key不允许,所以HashSet添加的元素也不允许重复。

2023-08-30 21:24:06 848

原创 【spring】一文带你弄懂Spring Bean的生命周期(超详细,超级通俗易懂!!)

然后再在配置文件中进行配置,就可以启用啦结果展示。

2023-08-30 21:10:29 661

原创 【SpringMVC】一文带你彻底搞懂SpringMVC的工作流程(最强详解!!)

【SpringMVC】一文带你彻底搞懂SpringMVC的工作流程(初学必看!!详解!!)

2023-08-29 22:57:16 952

原创 【SpringBoot】带你一文彻底搞懂RestController和Controller的关系与区别

是和的组合注解,用于创建 RESTful 风格的 API。返回的数据会直接作为响应的主体内容(JSON 或 XML),不进行页面跳转或视图解析。用于传统的 MVC 架构,负责处理请求并返回视图作为响应。方法通常需要配合注解,才能将返回值作为响应的主体内容。传统的springMVC一般就需要直接返回视图,而现在新兴的前端技术vue在项目中为前后端分离的架构,前端框架负责处理数据和渲染页面,而后端 API 则负责提供数据即可,所以对返回视图的要求也就比较少了。

2023-08-29 20:57:54 12403 5

原创 【Spring】一文带你彻底搞懂IOC、AOP

【Spring】一文带你彻底搞懂IOC、AOP

2023-08-28 23:13:30 1141

原创 【八股文】八股文自测(进来看看有没有你不熟悉的知识吧)

最开始就是偏向锁,一个线程进入到同步代码块的时候会将,会将对象的头部写上该线程的偏向锁,加上偏向锁之后同一个线程再次进入同步代码块的时候就不用重复申请锁和释放锁,这样能够减少性能的开销,直到其他线程申请锁的时候,会尝试获取锁,将对象头部的锁信息改为偏向该线程,对象头的锁信息切换达到20次阈值的时候升级为轻量级锁。轻量级锁,当多个线程进行锁竞争的时候会采用CAS尝试获取锁,竞争不到的线程此时不会阻塞在队列上,而是会自旋等待,线程会空循环一段时间,这样的好处就是不用频繁的线程切换减少了性能开销。

2023-08-28 11:04:42 82

原创 【MySQL】MySQL之八股必考(面试必问!)

组合索引:对多个字段建立一个联合索引,遵循最左匹配原则(例如,如果有一个组合索引 (A, B, C),那么当查询条件包含 A,或者同时包含 A 和 B,或者同时包含 A、B 和 C 时,数据库都可以利用该索引进行高效查询。它可以确保你看到的数据是最新的,但也可能会受到其他人修改数据的影响。事务1已经获取数据A的写锁,想要去获取数据B的写锁,然后事务2获取了B的写锁,想要去获取A的写锁,相互等待形成死锁。上图是非聚簇索引的呈现形式,在非聚簇索引的叶子节点上存储的并不是真正的行数据,而是主键ID,所以当。

2023-08-26 23:20:20 91

原创 【ES】ElasticSearch快速入门(初学者必看!)

ElasticSearch快速入门(初学者必看!)

2023-08-25 23:53:13 79

原创 【MySQL】如何定位慢SQL(带你一文弄懂!)

慢SQL是指执行时间较长的SQL语句。当数据库中的SQL查询或操作花费的时间超过一定阈值时,可以将其称为慢SQL。

2023-08-25 21:45:37 610

原创 【MySQL】MySQL的三种log——binlog、redo log、undo log(一文带你彻底搞懂!)

binlog其实在日常的开发中听得很多的,因为很多时候数据的更新就依赖着binlog。举个简单的例子:我们的数据是保存在数据库里边的,现在我们对某个商品的某个字段的内容改了(数据库变更),而用户检索出的来数据是走搜索引擎的。为了让用户能够收到最新的数据,我们需要把引擎的数据也改掉。通俗来讲——数据库的变更,搜索引擎的数据也要变更于是,我们就会监听binlog的变更,如果binlog有变更了,那我们就需要将变更写到对应的数据源当中。什么是binlog。

2023-08-25 21:38:41 1556

原创 【Redis】一文带你彻底了解Redis!

如果在下午3:06到3:08期间,系统发生了崩溃,导致Redis无法完成新快照的创建工作,那么Redis将丢失下午2:35之后写入的所有数据。如果在新的快照文件创建完毕之前,Redis、系统或者硬件这三者中的任意一个崩溃了,那么Redis将丢失最近一次创建快照写入的所有数据。选项一般不推荐,这种方案会使Redis丢失不定量的数据而且如果用户的硬盘处理写入操作的速度不够的话,那么当缓冲区被等待写入的数据填满时,Redis的写入操作将被阻塞,这会导致Redis的请求速度变慢。这个应该没人使用吧!

2023-08-25 12:22:12 144

原创 【MySQL】事务的四大特性及如何实现(超详细,面试必考)

MySQL事务的四大特性——ACID指的是。

2023-08-24 22:56:49 165

原创 【MySQL】MySQL中MyIsAM和InnoDB存储引擎的区别(面试必考!!)

在InnoDB中,数据和索引存储在磁盘上,部分数据和索引会被加载到内存缓存(即内存池)中。当需要查询数据时,InnoDB会首先检查内存缓存,如果数据已经在内存中,则可以直接从内存中读取,从而加快读取操作的速度。对于频繁读写的应用来说,InnoDB的缓存机制可以更好地适应并发读写操作,并提供更好的性能。这会导致数据在磁盘上存储时占用更多的空间,相比之下,MyISAM 使用堆表的结构,占用的磁盘空间较小。但较大的缓存需要更多的内存资源,因此可能需要配置更高的内存以达到较好的性能。

2023-08-24 22:05:27 119

原创 【MySQL】读完带你深刻了解Mysql中的MVCC机制

MySQL的InnoDB存储引擎下RC(读已提交)RR(可重复读)且快照读下基于MVCC做数据的多版本并发控制。在进行select语句查询的时候对这种有多版本的数据返回哪一条就是由MVCC和访问规则决定的。

2023-08-24 21:26:51 51

原创 【RPC框架】RPC与Dubbo(让你一文搞懂,超级详细好理解!)

RPC框架是一种用于实现远程过程调用的软件框架。它提供了一套通信协议、编码/解码机制以及远程调用的功能,。,最初由阿里巴巴公司开发并开源。它提供了一种基于Java语言的轻量级分布式服务框架,用于构建可扩展的、高性能的分布式应用程序。Dubbo在RPC的基础上,提供了更多的功能和特性,如服务注册与发现、负载均衡、容错机制等,使得分布式系统的开发和管理更加便捷。因此,,内部使用RPC来实现远程调用。

2023-08-24 18:08:17 473

空空如也

空空如也

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

TA关注的人

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