- 博客(63)
- 收藏
- 关注
原创 【Spring】一文了解SpringMVC的核心功能及工作流程,以及核心组件及注解
Spring MVC框架采用MVC模式构建Web应用,核心思想是将请求处理、视图渲染和数据模型分离。其核心组件包括DispatcherServlet(中央处理器)、Handler(控制器)、HandlerMapping(请求映射)和ViewResolver(视图解析)。工作流程为:请求先被DispatcherServlet拦截,通过HandlerMapping找到对应Controller处理业务逻辑,返回ModelAndView后由ViewResolver解析视图,最终渲染返回响应。 前后端分离模式下,后端
2025-07-30 11:04:03
718
原创 【JVM】常见的 Java 垃圾回收算法以及常见的垃圾回收器介绍及选型
文章摘要: 本文系统介绍了垃圾回收的核心机制,包括基本概念、引用类型和垃圾处理流程。重点分析了两种垃圾标记算法:可达性分析(基于GC Roots)和引用计数(Python采用),并详细比较了三种垃圾清除算法:标记清除(产生内存碎片)、复制算法(空间换时间)和三色标记(Go语言采用)。特别深入解析了三色标记算法如何通过混合写屏障解决并发标记时的"标记丢失"问题,实现降低STW时间的目标。文章还阐述了强/软/弱/虚四种引用的特性及其应用场景,以及finalize机制的执行原理。
2025-07-29 20:27:31
1063
原创 【JVM】Java 反射原理及类加载过程
Java反射机制摘要 Java反射机制允许程序在运行时动态获取类的内部信息并操作对象属性方法。核心是Class对象,记录了类的元数据。类加载过程分为三步:加载(读取.class文件)、链接(验证、准备、解析)、初始化(执行静态代码)。通过Class对象可获取构造器、字段和方法等元信息,实现动态调用。反射常用于框架开发(如Spring IOC)、动态代理和插件扩展,能突破封装性访问私有成员,但也带来性能开销和安全风险。典型应用包括动态创建对象、方法调用和属性操作,为Java提供了强大的运行时灵活性。
2025-07-27 15:05:14
904
原创 【JVM】从 JVM 整体说明 JVM 运行的完整流程
本文系统介绍了JVM的工作流程和内存结构。工作流程分为编译、类加载、链接、初始化和运行五个阶段,重点阐述了类加载器、字节码验证、静态变量初始化、解释执行和JIT编译等关键机制。内存结构部分详细说明了方法区、堆、虚拟机栈、本地方法栈和程序计数器五大核心区域的功能及相互关系。整个过程通过类加载将字节码转换为可执行代码,通过执行引擎实现解释执行和即时编译优化,并配合自动内存管理机制,最终实现Java程序的跨平台运行。
2025-07-23 20:45:00
821
原创 【MyBatisPlus】一文讲清 MyBatisPlus 基本原理及基本使用方式
MyBatisPlus是一个MyBatis增强工具,通过简化开发流程提高效率。它实现了表与类的自动映射,支持驼峰转下划线命名,通过注解灵活配置表名、主键和字段映射。使用流程包括:引入依赖、创建实体类(可使用MyBatisX自动生成)、继承BaseMapper等基础接口、添加MapperScan注解和配置application.yml。MyBatisPlus具有代码无侵入和高效开发的特点,显著减少基础CRUD代码量,同时保持与MyBatis的兼容性。
2025-07-22 21:30:00
702
原创 【MySQL】MySQL数据库中索引的设计原则,一文弄懂如何合理的为库表设计索引
本文总结了数据库索引的设计原则、操作方法和失效情况。设计原则指出数据量大、查询频繁、排序分组的字段适合创建索引,而唯一性差、更新频繁的字段不适合。索引操作包括创建、删除和修改可见性。索引失效情形包括:不满足最左匹配原则、使用计算/函数、类型不匹配、LIKE通配符前置、OR条件、NOT IN/NOT EXISTS等。最后介绍了索引生效等级,从最优的system到最差的全表扫描ALL。合理设计和使用索引可显著提高查询性能。
2025-07-22 19:30:00
1440
原创 【SpringBoot】Spring Boot 内嵌 Web 服务器入门,一文讲明白 Tomcat 的功能、目标、工作流程
Tomcat 是一个开源的 Java Web 应用服务器,实现了 Java Servlet 和 JSP 规范,是最流行的轻量级应用服务器之一。它通过监听 IP 和端口实现 HTTP 通信,解耦调用者与服务端。Tomcat 由多个核心组件组成:Coyote 处理 HTTP 连接,Catalina 作为 Servlet 容器,Jasper 解析 JSP 页面。其工作流程包括接收请求、解析路径、调用对应 Servlet 或 JSP 处理并返回响应。
2025-07-22 10:45:00
946
原创 【MySQL】MySQL 索引原理,一文弄懂 B树、B+树、聚簇非聚簇索引,以及应该使用索引的场合
摘要 数据库索引是优化查询性能的关键数据结构,主要类型包括B+树、哈希、全文和RTree索引等。B+树索引因其高效的层级结构和范围查询能力成为主流选择,其中聚簇索引(数据与索引同存)和非聚簇索引(独立存储)各有优劣。索引能显著提高查询速度,但会增加存储开销和维护成本。合理使用索引需考虑字段特性(唯一性、查询频率等),避免过度索引(建议单表<6个)。特殊索引如前缀索引可优化字符串查询,隐藏索引则用于安全测试索引删除影响。在查询性能与写入效率间需保持平衡,定期清理冗余索引。
2025-07-22 06:15:00
630
原创 【SpringBoot】最全的配置文件说明文档 application.yml
Spring Boot配置文件管理与优先级解析 摘要:本文系统介绍了Spring Boot中的配置文件使用方法和加载机制。主要内容包括:1)配置文件的动态引用语法,支持环境变量和默认值设置;2)通过@ConfigurationProperties和@Value注解实现配置注入;3)四种核心配置文件(bootstrap/application/profile/consul)的加载顺序和覆盖规则4)不同配置源的优先级比较(命令行参数>系统属性>properties>yml>yaml)
2025-07-21 20:43:15
938
原创 IDEA 中看不到 git 变更、git 提交失败
执行命令:git status查看当前变更的数据是否存在未被 git 扫描的数据,是否存在 cherrypick 失败的数据,如果有,则进行合并检查是否存在本地为推送的更新,如果有,则用 git push 对这些文件进行推送。
2025-05-23 09:59:18
745
原创 【BUG】类文件具有错误的版本 61.0, 应为 52.0,请删除该文件或确保该文件位于正确的类路径子目录中。
IDEA 报错的详细解决方案:类文件具有错误的版本 61.0, 应为 52.0,请删除该文件或确保该文件位于正确的类路径子目录中。
2025-03-11 10:28:07
1423
原创 【Netty】五种经典 IO 模型详解,附各种模型流程图及流程详解
本文详细介绍了五种IO模型的工作原理和特点:阻塞IO、非阻塞IO、多路复用IO、信号驱动IO和异步非阻塞IO,并分析了它们在同步/异步和阻塞/非阻塞维度上的区别,以及各自适用的场景。
2025-02-28 15:38:52
1319
原创 【K8S】Kubernetes 中的基本组成部分介绍,一文了解 K8S 中的所有概念
本文详细介绍了 Kubernetes (K8S) 的核心概念,包括应用、容器、Pod、Service、Node、Cluster、Ingress 等组件的定义、功能和层级关系,以及它们在容器编排和应用部署中的作用。
2025-02-26 15:55:03
1129
原创 【K8S】Kubernetes 基本架构、节点类型及运行流程详解(附架构图及流程图)
本文详细介绍了 Kubernetes 的基本架构,包括 Master-Worker 节点结构、各组件功能、端口类型以及服务分类。重点阐述了集群的工作流程和各类服务(ClusterIP、NodePort、LoadBalancer、Ingress)的特点与应用场景。
2025-02-26 13:17:12
2927
原创 Spring Cloud - 注册中心(Nacos)原理及代码实战
本文详细介绍了注册中心的基本原理和功能,以及 Nacos 作为注册中心的具体应用,包括服务注册、服务发现、配置管理和动态路由等核心功能的实现方法和配置步骤。
2024-12-29 13:08:58
1095
原创 Redis - Token & JWT 概念解析及双token实现分布式session存储实战
本文详细介绍了 Token 和 JWT 的概念、组成和工作原理。Token 包括 Access Token 和 Refresh Token 两种类型,JWT 则是一种跨域认证解决方案,由 Header、Payload 和 Signature 三部分组成。文章最后讨论了 JWT + Redis 的实现方案。
2024-12-26 21:48:59
1615
原创 JavaWeb - ⭐ AOP 面相切面编程原理及用户校验功能实战
AOP (面向切面编程) 是 Spring 框架中的重要特性,它通过动态代理技术实现对目标方法的功能增强,无需修改原代码。AOP 的核心概念包括 JoinPoint(可代理的方法)、PointCut(实际被代理的方法)、Advice(代理逻辑)和 Aspect(切面),通过 execution 或 annotation 表达式定义切入点,并使用 @Before、@After、@Around 等注解实现代理逻辑,广泛应用于日志记录、权限控制、事务管理等场景,极大提高了代码的复用性和可维护性。
2024-12-24 22:23:39
1062
原创 计算机网络 - HTTP 协议和万维网
本文详细介绍了 HTTP 协议的基本概念、通信过程和连接方式,包括 URL、URI、HTTPS、Cookie 等核心组件,以及 HTTP 请求响应结构和 Servlet 的工作原理。
2024-12-20 15:00:39
2002
原创 SpringBoot - Cookie & Session 用户登录及登录状态保持功能实现
本文详细介绍了会话技术中的 Cookie 和 Session 机制,包括它们的定义、工作原理、区别和应用场景。Cookie 用于客户端存储,Session 用于服务端会话管理,两者共同实现用户身份验证和状态保持。
2024-12-18 22:39:29
2472
原创 Nginx - 负载均衡及其配置(Balance)
本文详细介绍了负载均衡的概念、工作原理和实现方法。主要包括负载均衡器的工作流程、上游服务器组的调度算法、状态参数配置,以及具体的Nginx配置实例,帮助实现多服务器的负载分配和高可用性。
2024-12-18 17:27:47
1302
原创 Nginx - 配置文件 Configuration 详解
本文详细介绍了 Nginx 的配置体系,包括配置文件结构、各种上下文(context)的用法、HTTP 服务配置、静态文件服务、动态代理以及缓存机制等核心内容,是一份完整的 Nginx 配置指南。
2024-12-18 17:26:35
3337
原创 Nginx - 相关概念解释及整体结构
本文详细介绍了 Nginx 的基本概念、核心功能和技术特点。包括其作为高性能 HTTP 服务器的定位、主要功能(如反向代理、负载均衡)、进程架构(主进程和工作进程)以及高性能、高可靠等关键特性。
2024-12-18 17:23:48
874
原创 Linux - rpm & yum 工具及命令总结
本文详细介绍了 Linux 系统中两个重要的包管理工具:RPM 和 YUM。RPM 用于直接管理软件包,而 YUM 则是基于 RPM 的前端工具,提供了自动下载、依赖处理等高级功能。
2024-12-18 17:21:46
437
原创 Redis - 位置检索 Geolocation
本文介绍了Redis GEO数据结构在位置检索功能中的应用。通过存储商户的地理坐标信息,实现了查询商户与用户距离、获取最近商铺列表等功能,并详细说明了数据预热、业务实现的完整流程。
2024-12-16 09:47:22
742
原创 功能:推送 feed
这篇文章主要介绍了一个社交媒体平台中的Feed推送功能实现方案。文章详细说明了如何高效地将博主发布的内容推送给粉丝,包括两种实现模式:纯推模式和推拉结合模式。其中推拉结合模式被认为是最优方案,它根据用户类型(普通用户vs大V)采用不同的推送策略。文章还提供了详细的API设计和Java代码实现,包括了分页查询、Redis存储等技术细节。
2024-12-14 16:56:02
389
原创 Redis - 集合 Set 及代码实战
本文详细介绍了 Redis 中的 Set 数据类型及其在社交关注功能中的实际应用。首先讲解了 Set 类型的基本概念、特点和常用命令,以及其底层的两种编码方式(IntSet和Hash Table)。随后通过一个用户关注系统的实战案例,展示了如何结合 Redis Set 和 MySQL 实现高性能的关注、取关和共同关注功能,包含了完整的数据结构设计和代码实现方案。
2024-12-14 16:32:27
981
原创 Redis - 顺序队列 SortedSet
本文详细介绍了如何使用 Redis 的 SortedSet 数据结构实现一个基于时间顺序的博客点赞排行榜系统。
2024-12-13 12:17:37
723
原创 Redis - 消息队列 Stream
消息队列是一种分布式系统中的消息传递方案,主要由生产者、消费者和消息代理组成,支持异步通信和解耦。Redis Stream 提供高吞吐量的消息处理,支持消费者组和消息确认机制,确保消息的可靠消费。常用命令包括创建消费者组、读取消息和确认消息等。其他方案如 List 和 PubSub 存在各自的优缺点。
2024-12-13 11:12:05
2501
原创 ⭐Redis - 手动实现分布式锁 & Redisson 的使用
分布式锁是一种在分布式系统中实现互斥访问的机制。Redis 的 Redisson 组件提供了完整的分布式锁实现,具有可重入、自动续期、主从一致等特性。它通过 Lua 脚本保证原子性,使用 WatchDog 机制处理锁超时,并支持多重锁来保证高可用性。
2024-12-13 10:25:49
1240
1
原创 Redis - ⭐数据缓存 Cache
通过 Redis 实现缓存:将 Redis 作为数据交换的缓冲区(临时储存数据的位置)减低后端负载、提高读写效率、分级缓存设计
2024-11-27 17:30:57
1198
原创 Redis - Jedis 环境配置
定义:Jedis是Java语言中一个开源的、用于操作Redis数据库的客户端库。它是由Redis官方推荐的Java客户端之一功能:提供一组简单易用的API,方便开发者进行与Redis服务器之间的交互官网网址:https://github.com/redis/jedis。
2024-07-11 18:00:00
861
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅