自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 SpringBoot的自动配置和起步依赖原理

这里有个重要变化需要说明:早期的Spring Boot版本确实是通过META-INF/spring.factories文件来注册自动配置类的,但从2.7版本开始,官方逐渐转向了新的META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports文件。不过无论是新机制还是旧机制,底层逻辑都是相同的——框架提前预设好常见技术栈的最佳实践配置,只要开发者引入对应的起步依赖,就会触发这些配置的自动加载。

2025-05-08 20:23:31 443

原创 MVCC(多版本并发控制)

MVCC(多版本并发控制)是数据库实现高并发事务的核心技术之一,其核心是通过数据多版本解决读写冲突。以下从‌‌四个方面深入解析。

2025-04-27 15:24:12 508

原创 ‌MySQL 事务隔离级别详解

‌ 实现不同级别的数据一致性保障。开发者需根据业务需求权衡一致性与性能,结合显式锁策略优化高并发场景。‌:需避免脏读,但对不可重复读和幻读容忍度较高的场景(如 Oracle 默认级别)。‌:需保证事务内多次读取数据一致性的场景(如账户余额查询)。‌:对数据一致性要求极低,允许临时性脏数据读取的场景。‌:对数据一致性要求极高,且并发量极低的场景。MySQL 的隔离级别通过 ‌。

2025-04-26 21:25:49 881

原创 springboot起步依赖的原理是什么?

‌和‌。

2025-04-20 14:39:41 224

原创 ‌AbstractQueuedSynchronizer(AQS)核心解析

‌ 是 Java 并发包(

2025-04-12 15:59:28 500

原创 ‌CGLIB 核心解析

CGLIB 通过动态生成子类实现方法拦截,弥补了 JDK 动态代理必须基于接口的局限性,广泛应用于 Spring、Hibernate 等框架。其核心在于 ‌Enhancer。方法灵活插入增强逻辑‌。实际使用中需权衡其性能优势与代理生成成本,并注意。与 JDK 动态代理不同,CGLIB 不依赖接口,可直接代理普通类‌。‌(Code Generation Library)是一个基于 ‌。‌ 和 ‌MethodInterceptor。‌ 的代码生成库,用于在 ‌。‌,实现对目标类的 ‌。‌,开发者可通过重写。

2025-04-12 11:33:49 361

原创 ‌JVM 调优核心步骤与参数配置‌‌

JVM 调优需结合监控数据(GC 日志、堆转储)明确瓶颈,针对性调整堆内存、收集器、线程参数。推荐优先使用 G1/ZGC 等现代收集器,并在低竞争、短任务场景下优化锁机制‌。

2025-04-12 08:39:27 720

原创 TCP和UDP的区别

TCP(传输控制协议)和 UDP(用户数据报协议)是两种最常用的传输层协议,它们在数据传输方式、可靠性、适用场景等方面有显著区别。‌:某些应用(如 QUIC 协议)基于 UDP 实现了类似 TCP 的可靠性,用于优化 HTTP/3 的性能。

2025-04-11 09:03:29 380

原创 ArrayList

【代码】ArrayList。

2025-04-11 08:39:07 338

原创 通俗版解释:synchronized 的原理

Monitorwait()‌‌:对应场景‌‌:对应场景‌‌:对应场景。

2025-04-09 20:11:18 398

原创 如何解决线程安全问题(不涉及分布式情况)

当多个线程并发操作共享资源(变量/对象)时,可能因非原子性操作或内存可见性问题导致数据不一致。简单场景下更安全(自动释放锁),JVM会优化锁升级(偏向锁->轻量级锁->重量级锁)JDK1.6+版本中两者性能差异不大,应优先考虑代码可维护性。显式加锁与释放(必须保证释放)防止死锁,加锁顺序需全局统一。实例(推荐成员变量)

2025-04-09 09:04:44 302

原创 线程池(ThreadPoolExecutor)不断加入任务

首先是核心线程处理任务 -> 然后是工作队列存满 -> 然后是创建临时线程,临时线程都在处理任务 ->最后处罚拒绝策略。

2025-04-09 08:56:41 90

原创 线程有哪些状态

(注:Java官方定义的线程状态为 ‌。

2025-04-08 20:05:34 192

原创 并发和并行有什么区别

一个咖啡师(CPU核心)同时处理多杯咖啡订单:‌Parallelism‌。

2025-04-08 19:55:15 154

原创 TreeSet以及HashSet注意事项

对象需要重写hashCode和equals方法,存入HashSet或者HashMap的key内才会被去重。对象需要实现compareable接口才可以存入TreeSet内进行排序。

2025-04-07 17:00:00 98

原创 hashMap相关

已知HashSet是单列的可去重集合(读取无序,无索引)那么HashSet的去重是如何实现的?是使用HashMap的key去重原理来实现也就是说,其实并不存在所谓HashSet,因为单列的HashSet只是把HashMap的值写死成一个常量并赋值为new Object();那么HashMap是如何去重的?(引用类型重写hashCode()方法和equals()方法的重要性)

2025-04-07 10:25:07 447

原创 什么是回表?

在Mysql InnoDB引擎中,主键默认是聚簇索引(即叶子节点会存储一整行数据)当sql命中非聚簇索引的时候,需要使用主键的值重新查询这行数据。在存储引擎层提前过滤无效主键值,减少回表次数‌。而非聚簇索引的叶子结点存储的是主键的值。将查询字段全部包含在非聚簇索引中。

2025-04-06 20:40:44 72

原创 关于finally关闭资源

try()的小括号内只能写资源类(即实现了AutoCloseable接口的类)虽然不论try{}代码块里是否有异常,finally都会执行。此时可以使用try-with-resource来自动关闭资源。

2025-04-06 17:20:42 164

原创 Integer 类的享元设计模式

方法在自动装箱时被调用,检查数值是否在缓存范围内。不可变性:Integer 不可变,保证共享对象的安全性,无需担心状态被修改。Byte: 缓存全部可能值(-128 至 127),因 byte 范围较小。Short/Long:类似 Integer,默认缓存 -128 至 127。在类加载时初始化缓存数组,预先生成范围内的 Integer 实例。性能优化:高频使用的小数值被缓存,减少对象创建和垃圾回收开销。灵活性:允许通过 JVM 参数扩展缓存上限,适应不同应用场景。比较内容,因超出缓存范围的对象不共享。

2025-04-02 11:18:48 326

原创 迭代器、增强for相关

增强for循环/Lambda遍历均不能解决并发修改异常问题,因此增它们只适合做数据的遍历,不适合同时做增删操作。如果集合支持索引,可以使用for循环遍历,每删除数据后做i--;Collection还可以使用lambda遍历(jdk1.8之后)或者可以使用迭代器遍历,并用迭代器提供的删除方法删除数据。增强for是迭代器的语法糖,可以用来遍历集合或者数组。迭代器是用来遍历集合的专用方式(数组没有迭代器)

2025-03-31 21:23:42 187

原创 JVM相关

【代码】JVM相关。

2025-03-31 17:25:37 211

原创 如何自定义异常类

和编译时异常一样,只不过编写的类需要继承RunTimeException类。通过throw new 类(message)创建异常对象并抛出。编写一个类,继承Exception类,重写构造。

2025-03-31 15:15:54 193

原创 空指针异常:NullPointException

所有的空指针异常都是 null.方法();

2025-03-31 11:50:30 63

原创 高可用与高吞吐的权衡原理‌(CAP)

在分布式系统中,‌高可用性(High Availability)‌ 与 ‌高吞吐量(High Throughput)‌ 通常难以同时最大化,其本质源于 ‌资源竞争‌ 和 ‌设计目标的冲突‌。强一致性场景中,为保证数据一致性(如 CAP 原理中的 ‌C‌),需通过同步复制或分布式锁协调节点间的数据状态,这会增加网络通信和计算开销,降低吞吐量‌。核心强一致性模块(如支付)采用高可用架构(如 MySQL 主从同步 + 故障转移),非核心模块(如缓存)通过异步队列提升吞吐‌。可部分缓解矛盾,但无法完全消除‌。

2025-03-18 20:44:56 426

原创 Redis 集群保证数据一致性的核心机制详解‌

Redis 集群保证数据一致性的核心机制详解‌

2025-03-18 20:12:40 661

原创 Java中的集合

【代码】Java中的集合关系。

2023-09-07 14:36:58 81 1

原创 FinalShell打不开也关不掉[已解决]

打开任务管理器,把这个杀掉就好了。

2023-08-05 15:34:10 4549 8

空空如也

空空如也

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

TA关注的人

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