- 博客(50)
- 资源 (3)
- 收藏
- 关注
原创 Springboot的run方法都做了什么
通过这一流程,Spring Boot 自动完成了依赖管理、自动配置、组件扫描等复杂操作,最终将应用交付为「可对外提供服务」的状态。理解。
2025-08-28 15:38:37
766
原创 Redis的分布式序列号生成器原理
Redis 分布式序列号生成器的核心原理是利用 Redis 的和,在分布式系统中生成全局唯一、有序的序列号。其设计通常结合业务需求(如有序性、长度限制、高并发),通过 Redis 的原子命令(如INCRINCRBY)或 Lua 脚本实现。
2025-08-06 15:25:18
867
原创 java线程的生命周期和工作过程
Java线程的生命周期指的是一个线程从创建到销毁所经历的不同状态,以及在这些状态之间转换的过程。理解这些状态及其转换条件对于编写正确、高效、线程安全的程序至关重要。掌握线程的生命周期和工作过程,对于诊断线程相关问题(死锁、活锁、饥饿)、设计高效并发结构以及理解框架提供的并发工具(如线程池)的运行机制至关重要。- 无限期等待状态**。Java线程的生命周期在。- 限时等待状态**。- 可运行状态**。
2025-07-23 09:45:39
487
原创 springboot如何自定义stater
自动配置类是核心,通过条件注解控制 Bean 的创建 是自动配置的注册入口配置属性类实现类型安全的属性绑定条件注解是精确控制装配的关键:配置元数据提供 IDE 友好的提示优秀的自定义 Starter 应该具备:开箱即用、配置灵活、环境感知、依赖清晰的特点。遵循这些原则可以创建出企业级的 Spring Boot Starter。
2025-07-22 15:09:16
382
原创 如何排查服务器 CPU 飙高
服务器 CPU 飙高(CPU 使用率持续超过 80% 甚至接近 100%)是典型的性能瓶颈问题,可能由引起。以下是系统化的排查步骤,覆盖从现象确认到根因定位的全流程。
2025-07-22 11:24:08
1878
原创 如何诊断排查线程死锁
线程死锁是指两个或多个线程因争夺资源而互相等待,导致所有相关线程无法继续执行的状态。诊断死锁的核心是,并通过工具或代码分析确认阻塞源。
2025-07-22 11:18:16
1061
原创 虚拟线程(Project Loom)的底层实现原理?对比传统线程的优势?
虚拟线程(Project Loom)是 Java 社区为解决高并发场景下线程资源瓶颈而推出的实验性项目(预计随 JDK 21 正式发布),其核心目标是通过替代传统操作系统级线程(OS Thread),显著降低并发编程的资源消耗和复杂度。以下从和两方面展开说明。
2025-07-21 15:57:29
478
原创 ConcurrentHashMap 在 JDK 8 中的优化(分段锁 → CAS + synchronized)
ConcurrentHashMap 是 Java 中线程安全的哈希表实现,其核心目标是在多线程环境下提供高效的并发读写能力。JDK 7 与 JDK 8 的实现差异显著,其中 JDK 8 对锁机制进行了重大优化:。以下从三个维度展开说明。
2025-07-21 15:26:17
1007
原创 synchronized锁升级过程(无锁→偏向锁→轻量级锁→重量级锁)
是 Java 中最基础的同步机制,其底层通过(Lock Escalation)机制优化性能,根据竞争激烈程度动态调整锁的粒度,从无锁逐步升级为偏向锁、轻量级锁,最终可能升级为重量级锁。以下是完整的锁升级过程及原理详解。
2025-07-21 15:00:10
1086
原创 解释 `-XX:MaxTenuringThreshold`、`-XX:SurvivorRatio` 的实际调优意义
和 是 JVM 中控制新生代对象生命周期管理和内存区域分配的核心参数,直接影响 Young GC(Minor GC)的频率、对象晋升到老年代的时机,以及整体 GC 性能。以下从参数定义、调优逻辑和实际场景三个维度展开说明。对象在新生代的存活次数由其被 Minor GC 时的“年龄”决定。每次 Minor GC 后,存活对象的年龄加 1;当年龄超过 时,对象被晋升到老年代。调优目标:平衡新生代与老年代的内存压力,避免因对象过早或过晚晋升导致的 GC 问题。场景 1:对象存活时间短(短生命周期对象为主
2025-07-21 13:54:20
535
原创 深入理解Tomcat 基本架构
Tomcat 是 Apache 软件基金会旗下的开源 Servlet 容器,实现了 Java EE(现 Jakarta EE)的 Servlet、JSP 等规范,广泛用于 Java Web 应用的部署和运行。其架构设计围绕和展开。以下从核心组件、层级结构、关键机制三个维度深入解析 Tomcat 的基本架构。
2025-07-07 15:59:11
1096
原创 SSM和SpringBoot框架的关系
:SSM 是“手动拼装的汽车”,需要开发者熟悉每个零件的组装;Spring Boot 是“出厂即用的汽车”,开发者只需关注“如何驾驶”(业务逻辑)。
2025-07-03 17:01:31
1277
原创 拦截器(Interceptor)与过滤器(Filter)的区别
在 Java Web 开发中,和都是用于处理请求和响应的组件,但它们的设计目标、作用范围和使用场景有显著差异。以下从多个维度对比两者的区别,并结合实际场景说明如何选择。
2025-07-03 15:47:21
956
原创 人脑接口的原理
人脑接口(Brain-Computer Interface,简称 ,也译作脑机接口)是一种在大脑与外部设备之间建立直接通信通道的技术,允许大脑通过神经信号直接控制设备(如计算机、机器人、假肢等),或接收外部设备的反馈信息。其核心原理是,从而实现“意念控制”或“脑-机交互”。
2025-07-03 15:00:58
1313
原创 MongoDB 常用增删改查方法及示例
MongoDB 的增删改查(CRUD)操作是其核心功能,主要通过或驱动(如 Node.js、Python 等)实现。以下是最常用操作的详细说明及示例(基于语法)。
2025-07-01 18:38:15
1252
原创 MongoDB 和 Redis的区别
MongoDB 和 Redis 是两种不同类型的 NoSQL 数据库,虽然都属于非关系型数据库,但核心设计理念、数据模型、适用场景差异显著。以下从多个维度对比两者的区别,并结合典型场景说明如何选择。
2025-06-27 18:30:30
1255
原创 Springboot整合Elasticsearch及常用方法大全
若需要更细粒度控制(如连接池、线程池),可自定义或@Bean// 或直接使用 Spring Data 提供的 ElasticsearchRestTemplate(已过时,新版推荐 ElasticsearchClient)// @Bean// }
2025-06-27 17:01:38
3688
原创 Kubernetes核心技术原理详解
Kubernetes(K8s)是云原生领域的核心容器编排系统,其设计目标是。要理解其核心技术原理,需从等维度展开。
2025-06-21 15:32:59
523
原创 NACOS 核心技术原理详解
Nacos()是阿里巴巴开源的,广泛应用于微服务架构中,解决服务实例动态注册与发现、配置集中管理与动态推送、服务治理(如流量控制、熔断限流)等核心问题。其核心技术原理围绕设计,融合了服务发现、配置管理、分布式协调等多领域技术。
2025-06-16 22:23:59
1692
原创 @Scheduled 底层实现原理
Scheduled是 Spring 框架提供的,用于声明式地定义周期性或固定间隔执行的任务。其底层实现涉及 Spring 的任务调度模块()、注解处理机制()以及 JDK 的定时任务工具(如。
2025-06-16 17:22:36
965
原创 Lambda 表达式的原理及用法详解
Lambda 表达式是 Java 8 引入的,其核心目的是简化(仅含一个抽象方法的接口)的匿名实现类的代码编写。它通过更简洁的语法(类似数学中的“λ 表达式”)让代码更接近自然语言,同时推动了 Java 向函数式编程范式的演进。
2025-06-16 14:15:29
1072
原创 函数式接口示例及详解【可以不用,但不能不懂】
函数式接口(Functional Interface)是 Java 8 引入的核心特性之一,是 Lambda 表达式和方法引用的基础。它的定义非常简单:(可以有默认方法、静态方法和从Object继承的方法)。通过注解(可选,但推荐)显式标记,编译器会强制检查该接口是否符合函数式接口的规范。
2025-06-16 11:48:01
745
原创 Druid 连接池详解
Druid(全称 )是阿里巴巴开源的,同时也是数据库监控与防御工具。它不仅实现了传统连接池的核心功能(如连接复用、生命周期管理),还提供了丰富的扩展能力(如 SQL 监控、慢查询分析、SQL 防火墙、连接泄漏检测等),是 Java 生态中最主流的数据库连接池之一(尤其在 Spring Boot 项目中广泛使用)。
2025-06-15 21:59:14
1771
原创 @SpringBootTest 详解
是 Spring Boot 提供的,用于标记一个测试类需要加载完整的 Spring 应用上下文(Application Context),并支持对 Spring 生态组件(如 Service、Repository、Controller 等)的集成测试。它是 Spring Boot 测试工具包()的一部分,通常与 JUnit 5(@Test)配合使用。
2025-06-15 21:42:53
1195
原创 C语言执行 main() 函数前,程序都做了什么
在 C 语言程序中,main()函数是用户代码的逻辑起点,但在它被执行之前,程序需要经历等多个关键阶段。这些阶段由编译器、链接器、操作系统共同协作完成,确保程序具备运行所需的环境和资源。
2025-06-14 14:17:38
1471
原创 Spring Boot 常用注解面试题深度解析
Spring Boot 注解是其“约定优于配置”的核心实现工具,通过注解简化了传统 Spring 应用的繁琐配置。以下从出发,深度解析 Spring Boot 最常用注解的原理、作用及使用场景,覆盖启动类、配置、依赖注入、AOP、Web 开发等核心场景。
2025-06-12 19:11:11
1000
原创 Linux-进程间的通信
在Linux系统中,进程间通信(Inter-Process Communication, IPC)是指不同进程之间交换数据或协调操作的机制。由于进程的内存空间相互隔离,操作系统提供了多种IPC方式,让进程能安全高效地通信。
2025-06-11 17:00:42
1124
原创 5分钟上手【Markdown】:效率提升100%实践
别慌!Markdown 是一种的超简单语法,5分钟就能学会核心操作。搭配好用的编辑器和插件,效率直接翻3倍!
2025-06-11 14:39:20
1144
原创 小程序原理深度剖析:从架构到运行机制
小程序的核心原理是依托宿主App的沙盒环境,通过双线程模型分离视图与逻辑,结合类Web技术实现轻量化开发,同时通过桥接层扩展原生能力。其优势在于“即用即走”的用户体验、低开发成本和跨平台能力,局限性则源于对宿主的依赖(功能受限于宿主开放接口)。理解其架构与运行机制,有助于开发者更好地优化性能、规避坑点(如数据更新延迟、权限问题),并充分发挥小程序的价值。
2025-06-11 10:30:01
874
原创 程序编译器原理简述
程序编译器的工作原理可以简单概括为“翻译+检查+优化”,核心是将人类能看懂的高级语言代码(如C、Java),转换成计算机能直接执行的机器指令(二进制代码)。
2025-06-11 09:34:14
472
原创 缓存架构方案:Caffeine + Redis 双层缓存架构深度解析
支持自动加载、刷新、过期:可以自动加载数据到缓存中,还能根据配置自动刷新缓存项,并在缓存项过期后将其移除。高并发读写性能优秀:使用 Segmented Locking(分段锁)来优化并发性能,避免在高并发情况下造成锁竞争,从而实现高吞吐量的缓存访问。适用于热点数据快速访问场景:对于需要频繁访问但又不会频繁变更的数据,如配置信息、枚举值等,Caffeine 可以将其缓存起来,减少对数据库或其他存储系统的访问,提高数据读取速度。支持持久化、集群部署、Lua 脚本等高级功能。
2025-06-03 17:42:49
1386
原创 Sa-Token 框架介绍及用法
核心理念:以简单易用、功能强大、扩展性强为特点,通过简洁的API和注解驱动,降低权限系统的开发复杂度,其核心原理是基于Token机制实现用户的身份认证和权限校验。核心功能权限认证:提供丰富的权限认证方式,包括登录认证、角色认证、权限认证等,可轻松实现各种权限控制场景。支持注解式权限管理、路由鉴权等多种鉴权方式,还能进行权限码模糊匹配、使用权限通配符等操作。会话管理:提供强大的会话管理功能,支持分布式会话,使得在不同服务器之间的用户状态得以共享。
2025-05-30 17:29:34
562
原创 请说一下什么是LRUCache
LRUCache即最近最少使用缓存,是一种常用的缓存淘汰策略,用于在有限的存储空间下,优化资源的利用率和访问效率:具体数据结构详情可见:数据结构:LRU Cache_cache lru-CSDN博客
2025-05-30 16:39:47
280
原创 RedisMessageListenerContainer 原理及用法
是 Spring Data Redis 提供的一个类,用于接收来自 Redis 频道的消息,并驱动注入其中的实例。
2025-05-29 11:30:49
824
原创 整理redis在项目中有哪些应用场景(必会)
Redis作为一种高性能的内存数据库和缓存服务器,在项目中有着广泛的应用场景,以下是一些常见的应用场景:
2025-05-29 11:24:12
426
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅