后端

JVM类加载机制分析

1. 类加载机制 在之前的文章万字长文把[JVM]从头到尾讲一遍 中详细讲了JVM虚拟机的内存结构和垃圾回收算法,如下图概述了JVM整个的运行机制,今天来讲讲最上面的类加载机制部分。 JVM 什么是类加载机制? Java虚拟机将编译后的.class文件加载到内存中,进行校验、转换、解析和初始化,到最终的使用,这就是类的加载机制。类的加载时机并未有明确的规定,但是类明确了类的初始化时

重看Spring聚焦Environment分析

目录一、理解Environment的设计(一)整体理解(二)聚焦Profiles分析(三)聚焦Properties分析二、Environment类图结构分析三、PropertyResolver源码分析(一)源码展示说明(二)源码理解分析四、Environment源码分析五、ConfigurableEnvironment源码分析(一)源码展示(二)如何理解六、AbstractEnvironment简

SpringBoot @Scheduled Cron 表达式 详解

Cron 表达式详解Cron 表达式是用于定义定时任务执行时间的字符串,广泛应用于 Spring 的 @Scheduled、Quartz 等定时任务框架。其核心是通过 ‌时间字段‌ 和 ‌通配符‌ 组合实现复杂的调度规则。 1. 表达式格式‌Cron 表达式由 ‌6或7个字段‌ 组成,分别表示不同时间单位(Spring 中通常用 ‌6位‌ 格式&

手写Dubbo SPI机制和源码解析

版本 2.7.8 SPI机制 官方文档介绍如下 SPI 全称为 Service Provider Interface,是一种服务发现机制。SPI 的本质是将接口实现类的全限定名配置在文件中,并由服务加载器读取配置文件,加载实现类。这样可以在运行时,动态为接口替换实现类。正因此特性,我们可以很容易的通过 SPI 机制为我们的程序提供拓展功能。 说白了,SPI是一种第三方框架常用的扩展手段:第三方

读完 RocketMQ 源码,我学会了如何优雅的创建线程

RocketMQ 是一款开源的分布式消息系统,基于高可用分布式集群技术,提供低延时、高可靠的消息发布与订阅服务。 这篇文章,笔者整理了 RocketMQ 源码中创建线程的几点技巧,希望大家读完之后,能够有所收获。 1 创建单线程 首先我们先温习下常用的创建单线程的两种方式: 实现 Runnable 接口 继承 Thread 类 ▍一、实现 Runnable 接口 图

26. 删除排序数组中的重复项

26. 删除排序数组中的重复项 题目链接: 难度:简单 给定一个排序数组,你需要在 原地 删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。 不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。

509. 斐波那契数

1.题目 斐波那契数 (通常用 F(n) 表示)形成的序列称为 斐波那契数列 。该数列由 0 和 1 开始,后面的每一项数字都是前面两项数字的和。也就是: F(0) = 0,F(1) = 1 F(n) = F(n - 1) + F(n - 2),其中 n > 1 给定 n ,请计算 F(n) 。 示例 1: 输入:n = 2 输出:1 解释:F(2) = F(1) + F(0) = 1 +

【SpringBoot】你不能不会的SpringBoot图形验证码生成

文章目录 手写验证码 新建验证码工具类 Controller中调用 Apifox中验证 Hutool图形验证码 引入依赖 LineCaptcha:线段干扰的验证码 CircleCaptcha:圆形干扰验证码 ShearCaptcha:扭曲干扰验证码 GifCaptcha:GIF验证码 自定义验证码 纯数字验证