自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 MySQL 索引深入理解:B+ 树、二级索引、联合索引与查询优化

理解二级索引后,就可以理解回表了。SELECT *MySQL 的执行过程分为三个步骤。覆盖索引(Covering Index)并不是一种独立的索引类型,而是一种查询效果。SQL 查询需要的所有字段,都能够直接从某个索引中获得,不需要再访问聚簇索引获取其他字段。例如:因为user_id已经包含在二级索引中,所以 MySQL 可以直接返回结果。不需要回表。联合索引(Composite Index)是同时使用多个字段建立的索引。它的排序规则是:首先按照user_id排序。当user_id。

2026-11-09 16:06:16 109

原创 BCrypt 与 JWT 认证流程学习笔记

修改 Payload 后,旧签名 A 与服务器重新计算的签名不一致,就会被拒绝。攻击者没有服务器的密钥,无法生成正确的新签名。数据库密码,也不会另生成一个随机盐;它使用旧哈希里存储的盐重新计算。即使两个人的密码相同,随机盐不同,生成的哈希通常也不同。

2026-10-20 23:21:53 198

原创 VS Code Remote SSH 使用 Codex:通过 SSH 转发本地代理

通过 VS Code Remote SSH 在服务器上开发时,本地 Codex 可以正常使用,远程插件却出现登录失败、模型列表加载超时等问题。本次通过复用登录凭据和 SSH 代理转发,成功让远程插件识别账户并进入使用界面。

2026-10-19 23:31:52 221

原创 RabbitMQ 核心知识总结(生产实战版)

MQ(Message Queue)本质是先进先出的消息队列,程序之间通过发送消息进行通信,不需要直接互相调用。就像生活中排队买奶茶,先排队的人先拿到商品,队列负责缓冲和维持顺序。无法被正常消费的消息称为“死信”。消费者拒绝消息(basicNack/basicReject),且不重回队列队列消息数达到上限,新消息进入时最早的消息被挤出(溢出)消息 TTL 过期,仍未被消费。

2026-10-12 19:33:11 250

原创 从零搭建 Spring Boot + Nacos + MySQL + OpenFeign + Docker Compose 微服务项目

本文以一个“用户服务 + 订单服务”的完整示例为主线。完成后,可以通过浏览器访问两个后端服务,订单服务还能通过 Nacos 发现用户服务,并使用 OpenFeign 调用用户接口。

2026-10-11 10:39:41 295

原创 MySQL 初始化 SQL 中文乱码问题总结

本次乱码的根本原因不是 SQL 文件编码、数据库字段字符集或 DataGrip 显示设置,而是 MySQL 初始化脚本执行时,客户端和服务端之间使用了错误的。虽然 SQL 文件和 MySQL 服务端都使用 UTF-8,但客户端在建立连接时声明的字符集是。修改连接字符集只能防止之后导入的数据继续乱码,不会自动修复已经存入数据库的乱码数据。该参数会让 MySQL 服务端忽略客户端提交的字符集,使用服务端的默认字符集。MySQL 官方镜像在首次创建数据目录时,会使用容器内的。目录中的 SQL,此时中文数据会按。

2026-10-10 16:36:46 510

原创 Docker 完整核心知识点总结(超通俗易懂版)

运行容器后手动修改,打包快照黑盒、不可追溯、体积大、不规范不会打包数据卷数据镜像:只读环境模板,不含运行时数据容器:镜像运行实例,临时可销毁数据卷:实现数据持久化,容器删除数据保留挂载:分为数据卷挂载(数据库)、目录挂载(开发代码),运行时遮挡原目录自定义镜像:Dockerfile 构建,规范可复用;不使用 commitCompose:本地多容器编排,一键启停,自动网络通信最佳实践:一容器一服务、数据与程序分离、开发用build、线上用image。

2026-10-10 13:35:03 241

原创 SpringBoot3 + MyBatisPlus 实战全套踩坑总结(分页、多表、事务、库存、VO规范)

MP3.5.9 必须额外引入 jsqlparser 分页依赖多表联查必须手写XML,手动加关联表逻辑删除条件数据库下划线字段自动映射 Java 驼峰属性订单库存业务必须加事务 + 原子扣库存防超卖VO只存前端展示字段,严格脱敏Service处理业务+分页组装,Controller保持极简订单生成必须先存主表、再存子项,避免ID为null。

2026-09-29 18:41:47 93

原创 吃透 Spring Bean 生命周期:从创建到销毁,搞定 Spring 底层核心原理

Bean 生命周期是 Spring 容器对 Bean 实例,从定义加载、创建对象、属性注入、初始化、对外提供服务,到最终销毁资源的完整管控流程。new 对象 → 使用 → 垃圾回收,全程开发者自己控制。由 Spring 全权托管,分为多个固定阶段,每个阶段都有专属扩展钩子,这也是 Spring 实现 AOP、事务、自动配置的底层基础。Spring 启动时会扫描项目中所有带@Component@Service@Bean的类。

2026-09-28 23:07:47 200

原创 Maven超全核心知识点详解(多模块、继承、聚合、依赖、踩坑总结)

根本原因:模块循环依赖,Maven无法确定构建顺序,所有模块都无法生成jar包,导致依赖找不到。解决方案:抽取公共代码到common模块,切断模块循环依赖。pom打包的父工程,不生成jar、不编译代码,仅做配置管理和聚合构建。dependencyManagement只锁版本、不引依赖,子模块按需引入、省略version。继承是子复用父配置,聚合是父管理子构建,二者独立互不影响。模块依赖用于代码调用,禁止循环依赖,否则项目构建失败。

2026-09-23 16:16:30 423

原创 通俗吃透Java底层:源码、Class文件、JVM栈、堆、元空间全过程

磁盘存「完整Class文件」,内存元空间存「Class解析后的类模板信息」。

2026-09-23 13:38:45 140

原创 SQL零基础核心通关指南|增删改查、三范式、联表查询、分页、子查询 全总结

要求子查询只能返回单个值,多值直接报错!适用于唯一匹配场景。select * from product where category_id = (select cid from category where cname = '化妆品');

2026-09-22 20:18:34 161

原创 Java集合容器超全总结(零基础吃透 List/Set/Map 核心原理)

索引就是集合元素的数字编号,从 0 开始,和数组下标完全一样。有索引的集合:可以通过get(索引)remove(索引)set(索引,元素)精准操作元素。只有 List 系列有索引!!!Set、Map 全部无索引,没有 get(数字) 方法,绝对不能通过下标取值。集合的有序、无序,和索引无关,只看「遍历顺序」存取有序:遍历顺序 = 代码添加(put/add)的顺序排序有序:遍历顺序 = 元素大小顺序(和添加顺序无关)无序:遍历顺序随机,不保证添加顺序终极避坑:有序 ≠ 有索引!

2026-09-22 15:01:41 175

原创 Java 进程与线程、并发并行、线程安全 全套精讲(零基础吃透)

并发是交替执行,并行是同时执行,单核无并行进程是资源分配最小单位,线程是 CPU 调度最小单位继承 Thread 有单继承局限,实现 Runnable 支持资源共享,开发首选多线程共享变量+读写操作会产生线程安全问题,根源是非原子操作解决线程安全:同步代码块、同步方法、ReentrantLock 锁run() 不能抛出编译期异常,只能捕获,Callable 接口可抛异常、带返回值。

2026-09-21 20:37:59 158

原创 Java 两大缓存机制详解:Integer缓存 + String常量池(面试必刷)

场景结果核心原因true在 -128~127 缓存区间,复用对象false超出缓存区间,新建对象trueString 常量池共享对象falsenew 强制创建新堆对象。

2026-09-21 17:15:43 452

原创 彻底搞懂分布式锁:从单机并发到分布式场景,全覆盖原理+实战解析

实现方案性能防死锁可重入一致性适用场景数据库锁低需手动处理不支持一般低并发、简单业务原生Redis锁极高靠过期时间不支持一般(主从风险)禁止生产使用Redisson锁极高看门狗保障支持较好互联网高并发业务(首选)Zookeeper锁中等天然防死锁支持极高任务调度、高一致性场景单机多用户并发是单JVM多线程,用JVM本地锁即可;集群多实例是多JVM多进程,本地锁失效,必须用分布式锁。统一多机器的资源抢占规则,保证同一时刻仅一个节点操作共享资源。

2026-09-17 11:57:42 288

原创 通俗易懂!分布式系统与分布式事务全套核心原理复盘

多台独立的电脑通过网络协同工作,对外却表现为一个统一的系统。用户完全感知不到背后是多台服务器在运行。我们日常使用的淘宝、微信、抖音后台,全部都是大规模分布式系统。分布式系统因网络不可靠,受 CAP 定理约束,无法同时兼顾强一致与高可用。传统 2PC 刚性事务追求强一致,但性能极差;互联网业务基于 BASE 理论,采用柔性事务思想,通过 Seata 多样化事务模式,用短暂数据不一致换取高并发、高可用,完美适配微服务业务场景。

2026-09-16 11:20:09 366

原创 吃透正向代理、反向代理、Nginx、CDN、限流:后端必备网络基础全家桶

正向代理:代理用户,突破访问限制、管控内网流量反向代理(Nginx):代理服务,做流量入口、转发、负载均衡、限流防护CDN:分布式边缘缓存,就近加速、分担源站压力、抵御攻击Nginx限流:漏桶算法平滑流量,限制QPS和并发,保护后端服务稳定性。

2026-09-16 10:28:37 523

原创 一文吃透 Spring Cloud:微服务完整架构全解析(零基础+面试通用)

Nacos 管服务注册与配置、Gateway 管入口流量、LoadBalancer 管流量分发、OpenFeign 管服务通信、Sentinel 管容错防护。服务自动化治理、流量可控、故障自愈、高可用可扩展的微服务架构。这也是目前互联网企业主流的微服务落地标准方案。

2026-09-15 12:33:40 107

原创 从零吃透 MyBatis + MyBatis-Plus 全套核心知识(零基础保姆级教程)

MyBatis 是半自动ORM框架,封装JDBC,通过动态代理实现Mapper接口调用,依靠resultType/resultMap完成结果集映射,支持多种参数传递方式。拥有两级缓存,一级缓存会话级别默认开启,二级缓存Mapper级别手动开启、分布式慎用。PageHelper基于拦截器实现物理分页,依靠ThreadLocal传递分页参数。

2026-09-14 13:50:55 132

原创 吃透SpringBoot核心原理:从零理解自动配置、Starter、配置优先级(含实战案例)

SpringBoot不是替代Spring,而是Spring的增强子项目简化Spring应用开发,约定大于配置。开发者无需关注繁琐的底层配置,专注业务开发,开箱即用、快速部署。开发中可封装通用工具(OSS上传、短信发送、通用缓存)为自定义Starter,实现项目复用、零配置接入。1.Starter起步依赖:解决依赖繁琐、版本冲突,一键导入全套开发Jar包2.自动配置核心:基于条件注解,按需自动装配Bean,消灭冗余配置代码3.配置文件机制:多配置文件分级生效,外部配置优先,灵活适配多环境4.

2026-09-07 19:28:25 158

原创 SpringMVC 核心知识点全网总结(组件+流程+拦截器+异常+注解)

SpringMVC 五大核心组件:DispatcherServlet、HandlerMapping、HandlerAdapter、Handler、ViewResolver,仅 Handler 需手动开发;核心流程:请求分发→匹配处理器→适配器执行→封装数据→视图解析/直接响应;拦截器基于 Spring 机制,专注业务拦截;过滤器基于 Servlet 机制,专注全局 web 过滤;全局异常通过实现统一异常处理;

2026-09-07 11:28:57 186

原创 Spring核心全套面试详解:IOC、DI、Bean生命周期、循环依赖、AOP、事务(零基础吃透版)

IOC 全称控制反转,是Spring的核心设计思想。传统开发中,对象的创建、销毁、依赖管理全部由开发者手动new控制;而IOC将对象的创建权、生命周期管理权、依赖控制权全部反转交给Spring IOC容器。程序员不用手动new对象,Spring容器帮我们创建、管理、存储对象。被容器管理的对象,我们称之为Bean。DI 全称依赖注入,是IOC思想的具体实现手段。当一个Bean需要依赖其他Bean时,Spring容器会自动将对应的依赖对象赋值注入,无需开发者手动赋值。核心关系总结。

2026-09-06 11:40:08 383

原创 MySQL 索引全套精讲:索引原理、聚簇/二级索引、联合索引、索引优化、索引失效(超详细)

索引是 MySQL 调优最高频、最重要、面试必考的核心知识点。很多人只会,但不懂底层为什么快、为什么失效、怎么建最优索引。本文从零到精通,一次性讲透:索引到底是什么为什么用 B+ 树、不用哈希 / 红黑树聚簇索引 & 二级索引底层区别二级索引查找、回表全过程联合索引最左前缀原理企业级索引创建规范所有索引失效场景 + 案例适合面试背诵 + 工作优化 + 零基础吃透。索引就是数据库的目录。没有索引:查数据从头到尾逐行扫描 →全表扫描,数据量大巨慢。

2026-09-06 09:31:42 169

原创 JavaWeb核心知识点全集(HTTP、状态码、Restful、转发重定向、Cookie、Session 面试必背)

HTTP协议就是超文本传输协议,规定了客户端与服务器端数据通信的规则。HTTP 协议底层是基于 TCP 协议实现的,TCP 是面向连接、安全可靠的协议。注意:HTTP 协议本身是无状态协议。在目前的 Web 开发中,绝大多数前后端交互请求,都是基于 HTTP 协议或者 HTTPS 协议完成的。Restful 是一种接口设计规范、架构风格,不是协议、也不是框架,是目前前后端项目主流的接口设计标准。一切皆为资源,URL 标识资源,HTTP 请求方式代表资源操作。HTTP。

2026-09-03 14:57:13 223

原创 从零吃透Transformer全流程:终结90%新手误区(从Token到生成输出完整复盘)

初学Transformer,绝大多数人的困惑都不在于复杂公式,而在于模块数据流向、输入输出对象、注意力分工、维度变化的混淆。本文基于从零拆解的学习逻辑,完整复盘文本输入→Token切分→向量嵌入→编码器→解码器→最终生成输出的全链路,重点纠正新手高频误解(也是学习中最容易踩坑的卡点),全程通俗、无废话、逻辑完全闭环。预处理:文本→Tokenizer→固定词表映射为Token ID向量化:ID→可训练Embedding向量(持续优化)→叠加位置编码编码器。

2026-09-03 09:29:08 593

原创 SpringBoot 完整启动流程超通俗详解(结合反射彻底看懂 Bean 生命周期)

很多开发者只会写 CRUD,却永远搞不懂:为什么我加一个@Service类就能自动变成 Bean?Spring 怎么知道我写了哪些类?为什么框架不能直接 new 对象,必须用反射?项目启动到底干了哪些事?请求进来又是怎么跑到我的 Controller 的?本文完全结合上一篇反射原理,从零拆解 SpringBoot 启动全流程,全程人话、无废话、可直接面试背诵。1. Spring 所有 Bean都是启动时反射创建,不是编译期 new 出来的。2. 注解只是标记,

2026-09-02 15:07:47 339

原创 彻底搞懂Java反射:原理、场景、框架底层核心(通俗易懂版)

反射是运行时动态获取类信息、创建对象、调用方法,但始终搞不懂:为什么框架必须用反射?为什么不能直接 new 对象?反射和普通代码的区别到底在哪?本文结合Spring、MyBatis、JUnit真实运行流程,用最通俗的逻辑、全程贴合实战,从零讲透Java反射,看完彻底告别死记硬背。我们日常写的代码:编译期就必须写死类名。编译器在编译代码时,会提前校验这个类是否存在,不存在直接编译报错。写代码的时候,就确定了要使用哪个类。运行期动态加载类、创建对象、调用方法,核心是依托「字符串类名」实现动态操作。

2026-09-02 14:57:55 649

原创 踩坑实录:Dify 容器环境连接本地 MySQL 全攻略

本文记录Dify 虚拟机 / 容器环境 连接 Windows 本地 MySQL 完整踩坑与解决方案。核心痛点:Dify 运行在独立容器网络中,容器内 localhost 不等于宿主机 localhost,直接填写本地地址会出现连接拒绝;再加上 MySQL 默认仅允许本地访问、未开放远程账号权限,导致一直连不上库。本文从修改 MySQL 监听地址、配置 root 远程访问权限、Dify 改用本机局域网 IP 连接三个核心步骤,一步步解决网络隔离、端口监听、账号权限三大问题,同时解析背后原理,并附上完整配置与

2026-05-04 12:47:07 846

原创 黑盒攻击简单理解

在大多实际情况中,攻击者对DNN的结构或参数一无所知,并且无法获取任何大规模训练数据集,攻击者的唯一能力是观察DNN对选定输入分配的标签。所以提出了黑盒攻击,该方法无需掌握分类器训练数据或模型知识即可生成对抗样本。

2025-08-07 13:41:08 509

原创 C语言基础

bit(比特位), Byte(字节), KB, MB, GB, TB。联合体union, sizeof(union) = 其最大成员的大小。结构体struct, sizeof(struct) 计算规则。long long类型占8B。double类型占8B。char类型占 1B。float类型占4B。

2025-01-23 17:54:48 310

原创 1177 Subsequence in Substring

根据题意,在S字符串中找到包含P字符串的最短子字符串。例如给出的S字符串中包含P字符串的子字符串有。题目中要求,如果最短的不唯一,输出最左边的。输入两个字符串S,P。

2023-12-01 15:25:24 536 1

原创 eclipse安装WindowBuilder出现错误(亲测有效)

想在项目中使用swing界面,当我在eclipse中安装WindowBuilder插件时,每次安装好后,进行创建JFrame时,总是报错。后来,查找了很多方法,不断尝试,终于可以创建JFrame了,但我以为可以使用的时候,我点击Design的时候,又出现了错误,当时头都大了。第二天,在查阅资料的时候,突然发现了一个博主写的文章。我使用了他的方法,WindowBuilder终于可以使用了。4.然后就按照一般的方法进行安装,就可以安装成功了。一开始,是创建JFrame就报错。2.在界面中找到Add,并点击。

2023-11-30 14:42:00 2053

空空如也

空空如也

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

TA关注的人

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