自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 InnoDB 与 MyISAM 区别

InnoDB 与 MyISAM 区别

2022-08-12 11:25:09 322 1

原创 mysql 索引结构

假设现在以主键索引来维护这棵树,一般会用bigint、int,假设我们用bigint,mysql 里面大概是8 byte,根节点大概是16kb, 16kb * (8+6)约等于1170 个索引元素,叶子结点是16kb,除了索引元素还有data 元素,1170 * 1170 * 16 约等于两千多万…我们要查找30,首先把根节点所有的字段放到内存中,然后在内存中做比对,因为他是从左到右依次递增,因此我们可以折半查找,找到在15-56之间,继续在分叉节点进行查找,整个查找过程经历三次的磁盘io。......

2022-08-10 18:08:25 275

原创 多线程基础

1.进程和线程,并行和并发一个程序就是一个进程,一个程序中多个任务就是多个线程,进程表示资源分配的基本单位,线程是进程中执行运算的基本单位,也是调度运行的基本单位2.为什么使用多线程一段时间内,多个任务都需要有进展的情况,使用多线程会加大资源消耗,所以不是什么情况下都要用比如redis,es,解决的是好不好的问题,没有也能用,就是速度慢,效率低但多线程使用,解决的是能不能的问题例如:8:00数学 10:10语文 2:00英语 4:10政治一个对象若干个功能,依次调用,做完一个再做另一个如果

2020-05-21 11:38:05 359 1

原创 SpringCloudClient

1.创建client2.创建完成之后不要写代码、要看eureka项目与client项目对应的版本是否一致3.3.启动类加注解4.配置文件5.启动先启动eureka项目、再启动client项目。6.添加配置重启项目 点击刚才的链接、出现新的页面的地址栏中就会出现8.eureka高可用、创建两个eureka 互相注册EurekaApplication2同上9.修改并启动访问localhost:8761再修改访问localhost:8762就会发现client

2020-05-16 09:03:02 716

原创 五种I/O模型

2025-12-23 16:34:10 138

原创 OSI 七层模型

OSI七层模型是用来描述计算机网络中数据从一个设备到另一个设备传输的过程模型,分为七个不同的层级,每一层都负责网络通信的不同部分。

2025-12-19 16:23:27 227

原创 git 命令整理

用法:git reset --hard commit-id(会丢失更改) 或 git reset --soft commit-id(保留更改)用法:git add filename 或 git add .(将所有更改的文件添加到暂存区)设置用户名:git config --global user.name “Your Name”作用:将当前分支的提交应用到另一个分支的最新提交上,通常用来保持分支历史整洁。删除分支:git branch -d branch-name。作用:将文件添加到暂存区,准备提交。

2025-12-17 11:00:23 270

原创 MVCC 原理

MVCC(多版本并发控制)是一种高效的数据库并发控制技术,它通过为每行数据创建多个版本,允许多个事务并发执行,同时避免了读写冲突。MVCC 提高了数据库的并发性能,并且保证了数据的一致性和事务隔离性。尽管它需要额外的存储空间,并可能增加版本管理的复杂性,但在高并发应用中,它能够显著提升数据库的性能和响应能力。

2025-12-16 14:57:49 929

原创 Java 中 NIO 和IO 的区别

在Java 中,IO(input/output)和 NIO(new Input/output) 是两种不同的输入输出处理机制。它们各自有不同的设计理念和使用场景,理解这两者的区别对于优化性能、提高应用的响应速度非常重要。

2025-12-15 15:44:19 838

原创 java 中四种引用类型介绍

引用类型GC 时是否回收get()典型用途强引用❌ 永不回收有值普通对象软引用内存不足才回收可能为 null缓存弱引用GC 就回收大概率 null防泄漏虚引用回收前通知永远 null资源释放。

2025-12-15 12:15:08 684

原创 spring boot 和 spring cloud 的区别

核心区别:spring Boot 是用于快速构建单个、可独立运城的Spring 应用的工具;spring Cloud 是基于Spring Boot 构建的用于协调和管理多个微服务(即多个Spring Boot 应用)的微服务生态套件。

2025-12-11 10:35:32 497 1

原创 try-catch 应该在 for 循环里面还是外面

首先,从 JVM 字节码角度看,在没有异常发生的正常路径下,try在内还是在外,指令流差异极小(仅涉及 Exception Table 元数据),性能几乎一致,所以性能不是首要考虑点。“位置的选择主要取决于业务对部分失败的容忍度。如果业务要求原子性(如文件解析),放在外面,一错全停;如果业务要求隔离性(如批量通知),放在里面,互不影响,保证系统高可用。避坑指南(经验):“但在实战中,我会特别注意两点:一是在 @Transactional 事务中避免在循环内吞掉异常导致事务失效;

2025-12-01 15:08:25 916

原创 final,finally,finalize的区别

在Java中,final、finally和finalize是三个不同的关键字,它们具有不同的作用和用法.

2025-07-08 16:03:57 143

原创 在 Redis 分布式锁场景中,锁超时但业务逻辑未完成解决方案

推荐方案:优先使用自动续期(看门狗),如Redisson框架,简单可靠。适用场景短业务:预估超时时间+ Lua脚本释放锁长业务:分段处理 + 状态记录强一致性:结合数据库事务补偿根据业务特点选择合适的方案,避免锁超时导致的并发问题。

2025-07-03 12:05:37 399

原创 List、Set、Map三者之间的关系

以下是生成的6行4列表格(Markdown格式):List

2025-07-02 17:02:49 977

原创 linux系统的常用命令

符号模式:chmod u+x filename (给所有者添加执行权限), chmod o-w filename (移除其他用户的写权限), chmod a=r filename (所有用户只有读权限)tar -czvf archive.tar.gz file1 dir1/:创建 © gzip (z) 压缩包,显示过程 (v),指定文件名 (f)cut -d’,’ -f1,3 data.csv:按逗号 (,) 分隔符 (-d) 取第 1 和第 3 个字段 (-f)

2025-07-02 11:53:48 811

原创 统一认证登录双令牌机制的具体实现

2025-07-01 10:13:00 300

原创 SpringCloud 核心组件及其应用

Eureka 将各个服务维护在了一个服务清单中(双层map,第一层key 是服务名,低层key 是实例名,value是服务地址加端口)。Ribbon :服务间发起请求的时候,基于Ribbon 做负载均衡,从一个服务的多台机器中选自一台(被调用方的服务地址有多个),Ribbon 也是通过发起http请求,来进行的调用,只不过是通过调用服务名的地址来实现的,发现:eureka 注册的服务之间调用不需要指定服务地址,而是通过服务名向注册中心咨询,并获取所有服务实例清单(缓存到本地),然后发现服务的请求访问。

2025-06-25 00:24:24 210

原创 内存泄漏和内存溢出的区别

或者,因为之前很多人租了小房间不还(内存泄漏),导致现在连一个能容纳 10 人的小会议室都租不到了(累积导致 OOM)。可用的空房子(可用内存)越来越少,最终新租客(新内存请求)租不到房子了(OOM)。解决内存溢出通常需要先排查是否存在内存泄漏。: 内存溢出也可能单纯因为一次性申请的内存过大(超过配置上限)或瞬时压力过大(如高并发创建对象)造成,此时可能并不存在长期的内存泄漏。内存设置过小: JVM 堆内存(-Xmx)或其他内存区域(如栈 -Xss, 方法区/元空间)配置得太小,不足以支撑应用正常运行。

2025-06-25 00:15:23 2907 1

原创 synchronized的技巧与要点

同步代码块:通过 monitorenter 和 monitorexit 指令实现(编译后插入字节码)。同步方法:方法常量池中设置 ACC_SYNCHRONIZED 标志,调用时隐式获取锁。线程通过CAS竞争进入 _owner,失败则进入 _EntryList 阻塞。3、 _WaitSet:调用 wait() 后进入的等待队列。3、轻量级锁(Lightweight Lock)2、_EntryList:阻塞等待锁的线程队列。原理:通过CAS自旋尝试获取锁(避免线程阻塞)1、 _owner:持有锁的线程。

2025-06-24 19:51:01 356

原创 mysql 存储过程学习

从SQL执行的流程中我们分析存在的问题:1.如果我们需要重复多次执行相同的SQL,SQL执行都需要通过连接传递到MySQL,并且需要经过编译和执行的步骤;2.如果我们需要执行多个SQL指令,并且第二个SQL指令需要使用第一个SQL指令执行的结果作为参数。

2024-01-26 12:16:27 1225 2

原创 Logstash学习

下载地址: https://www.elastic.co/cn/downloads/logstash。Logstash配置文件有如下三部分组成,其中input、output部分是必须配置,filter部分是可选配置,而filter就是过滤器插件,可以在这部分实现各种日志过滤功能。logstash之所以功能强大和流行,还与其丰富的过滤器插件是分不开的,过滤器提供的并不单单是过滤的功能,还可以对进入过滤器的原始数据进行复杂的逻辑处理,甚至添加独特的事件到后续流程中。2、Logstash输入插件(input)

2023-11-02 10:04:59 275

原创 Nginx教程(相关概念)

Nginx 教程之相关概念

2023-07-25 13:42:33 319

原创 手写模拟Spring扫描底层实现

手写模拟Spring扫描底层实现

2022-11-21 16:54:24 331

原创 JMM 内存模型,volatile 实现原理

volatile 实现原理

2022-11-12 15:14:10 287

原创 synchronized底层实现原理

synchronized底层实现原理

2022-11-12 15:08:28 395

原创 mysql 联合索引 (最左前缀优化原则)

mysql

2022-11-11 12:04:02 185

原创 lamda 对 List<Map<String, Object>> 格式数据使用

对 List 格式的数据,对某个进行排序

2022-10-31 18:59:35 672

原创 lamda 复杂类型数据结构封装(五个饼图)

lamda 复杂类型数据结构封装(五个饼图

2022-10-31 11:53:08 249

原创 redis数据结构及其应用场景

redis中存储数据是以key-value的形式去存储的,其中key为String字符串类型,value的数据类型有string、hash、list、set、zset等这五种常用的。这五种数据结构在开发中基本上可以应对大部分场景的数据存储!!下面分别来介绍value的五种数据结构的用法以及使用场景。

2022-10-09 15:01:36 776 1

原创 java中的 异常体系

java中的 异常体系

2022-09-16 11:57:24 191

原创 redis 相关知识

redis 相关知识

2022-09-04 10:23:43 314

原创 Spring事务传播机制,多个事务方法互相调用时,事务如何在这些方法间传播

方法A 是一个事务的方法,方法A 执行过程中调用了方法B,那么方法B 有无事务以及方法B 对事务的要求不同都会对方法A的事务具体执行造成影响,同时方法A的事务对方法B 的事务执行也有影响,这种影响力具体什么就有两个方法所定义的事务传播类型所决定。嵌套事务:在a调用b 的时候,a要是没有事务,b自己开启了一个事务, a要是有事务,b 就嵌套在里面。aop 的缺陷会使事务失效。挂起事务:a里面他已经有事务,b就要把A 的事务挂起,b就自己以事务方式运行,说白了就是a自己处理自己的事务,b自己处理自己的事务。

2022-08-31 22:35:28 3283 4

原创 MacBook版IntelliJ内置Maven的配置文件setting.xml 位置

MacBook版IntelliJ内置Maven的配置文件setting.xml 位置查找

2022-08-31 18:10:40 805

原创 ArrayList 和 LinkedList 区别

ArrayList 和 LinkedList 区别

2022-08-30 22:26:50 240

原创 java中 String、StringBuffer、StringBuilder 区别及使用场景

String、StringBuffer、StringBuilder 区别及使用场景

2022-08-30 21:55:12 1512

原创 redis的缓存穿透、缓存击穿、缓存雪崩的区别

redis的缓存穿透 雪崩击穿

2022-08-30 21:35:33 305

原创 mysql锁的类型有哪些

mysql 的索引类型

2022-08-29 00:00:00 587

原创 GC 是如何判断对象可以被回收的

GC 是如何判断对象可以回收的

2022-08-28 15:45:00 394

原创 java 类加载器有哪些

Java 类加载器

2022-08-28 10:34:09 973

空空如也

空空如也

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

TA关注的人

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