- 博客(90)
- 收藏
- 关注
原创 MyBatis-Plus 从入门到实战:CRUD、Wrapper 条件构造器与自定义 SQL 一篇讲透
本文以校园失物招领案例为主线,讲解 MyBatis-Plus 环境搭建、BaseMapper 增删改查、@TableName/@TableId/@TableField 映射、QueryWrapper 与 Lambda Wrapper 条件构造,以及自定义 SQL 的使用。配套 8 张流程图、常见踩坑与复习速查表,适合 Java 后端入门、课程复习和面试前查漏补缺。
2026-11-06 17:12:13
133
15
原创 Spring Cloud 到底解决了什么?单体、集群、分布式、微服务一次讲透
集群和分布式到底差在哪?为什么单体一开始很好用、后来会扛不住?这篇从一家宠物医院的四年讲起,把单体、集群、分布式、微服务四个概念串成一条线:横向加机器治什么病、纵向拆业务又留下什么坑、微服务为什么还要把公共能力抽出来。最后讲清 Spring Cloud 是什么、版本号为什么是伦敦地铁站名、Netflix 和 Alibaba 怎么选。7 张图 + 3 张速查表,看完能直接复习,也能拿去应付面试。
2026-11-05 15:30:22
457
27
原创 MyBatis 动态 SQL 别再手拼了!6 个标签搞定增删改查,附完整可抄代码(避坑清单)
还在用 StringBuilder 拼 SQL?这篇把 MyBatis 动态 SQL 的 if、trim、where、set、foreach、include 六个标签拆开讲透。配一个「校园二手市集」实战案例,发布、多条件搜索、按需更新、批量下架全走一遍,最后附代码生成器用法和 10 条踩坑清单,代码可直接抄。
2026-10-31 18:53:48
470
68
原创 Spring AI 2.0 入门(一):AI / LLM / 提示词 / Token 一次讲透,别再被 2025 年的老教程坑了
Spring AI 2.0 入门第一篇,只讲概念。用裁缝师傅讲模型、用散装糖果讲 Token,四个词讲到能直接看实战文;附 2026 年 10 月版本格局(2.0 vs 1.1 vs 1.0)、主流模型阵容,以及按官方价目表实算的月度 Token 成本。看完你会知道:一个月近一万的账单,可能只是多说了几句客套话。
2026-10-29 19:09:23
180
15
原创 【MyBatis 入门】别再手写 JDBC 了!注解 + XML 双写法,增删改查一篇打通(附踩坑清单)
这篇用奶茶店点单系统,把 MyBatis 入门一次讲完:JDBC 为什么劝退、Starter 版本怎么跟 Spring Boot 对齐、注解与 XML 两种写法、@Options 拿自增主键、字段映射三种解法、多表查询、#{} 与 ${} 的区别和 SQL 注入。末尾附注解速查表 + 14 条报错对照表,Boot 3.5 与 4.1 两套依赖组合都能直接抄。
2026-10-29 00:01:05
433
53
原创 【JavaEE进阶】Spring Boot 日志:从 System.out 到 @Slf4j,6 个级别 + 4 类配置一篇讲透
还在用 System.out 打日志?先从它的四个硬伤说起,用「校园二手书借书」的接口演示 LoggerFactory 取对象、6 个日志级别怎么选,再用「奶茶店点单」讲明白 SLF4J 为什么要做门面;最后讲透 4 类必会配置:级别调整、持久化、文件分割、自定义格式,附 6 个踩坑点和两张速查表,看完直接能上手。
2026-10-24 00:33:10
545
75
原创 【MySQL】事务从入门到入坑:用「秒杀下单」讲透 ACID、回滚与四种隔离级别
别再拿转账讲事务了。本文用「秒杀下单:扣库存 + 写订单」这条链路,把 MySQL 事务一次讲透:ACID 到底在保证什么、BEGIN / COMMIT / ROLLBACK 与保存点怎么用、autocommit 踩过哪些坑、四种隔离级别如何查与设,脏读、不可重复读、幻读全部能开两个窗口亲手复现。末尾附速查表 + 面试三连,适合复盘和面试前速刷。
2026-10-20 15:05:13
219
13
原创 【JavaEE进阶】SpringBoot 配置文件详解:properties 和 yml 的区别、优先级、读取方式
SpringBoot 配置文件用 properties 还是 yml?一篇讲清两者的语法区别、加载优先级(properties 高于 yml)、支持的数据类型,以及 @Value 和 @ConfigurationProperties 到底该怎么选。含 yml 冒号漏空格、prefix 大小写、嵌套对象映射失败等高频踩坑,文末附 Hutool 图形验证码实战。
2026-10-15 14:27:54
764
70
原创 [JavaEE进阶]: Spring 容器深度剖析:IOC、DI、Bean 全流程|面试必背核心考点
本文完整讲解 Spring 容器核心:IOC 控制反转的设计目标、DI 依赖注入落地实现,Bean 的创建、存取、生命周期。包含高频面试题:`@Autowired`与`@Resource`区别、`@Qualifier`、`@Primary`多 Bean 冲突解决方案,带你一次性吃透 Spring IoC 底层,备战面试。
2026-10-11 12:26:22
505
71
原创 LeetCode 1419 数青蛙:状态模拟求最少青蛙数量|Java 题解
本文详解“数青蛙”算法题,通过模拟青蛙叫声顺序(c→r→o→a→k),统计最少所需青蛙数量。核心思想:维护各阶段青蛙计数,遇‘c’时复用或新增,遇‘k’时释放青蛙,中间顺序错或未完成则返回-1。遍历后需校验所有阶段是否清空。代码实现简洁高效,时间复杂度O(n),适用于字符串长度达10^5的场景。
2026-10-06 16:01:34
368
15
原创 [JavaEE进阶] Spring Web MVC 快速入门全总结:从 MVC 思想到手写两个实战案例
本文为小谢同学整理的Spring-Web-MVC学习资料,系统讲解了Spring MVC的核心概念:基于Servlet的Web框架,MVC设计模式及其在Java Web开发中的应用。内容涵盖从环境搭建、请求参数接收(单个、对象、JSON、路径变量等)、Cookie/Session/Header获取,到响应返回(静态页、数据、JSON、状态码)的完整流程,并通过加法计算器与简易登录案例实战,结合分层架构思想,帮助读者掌握“浏览器与Java程序交互”的本质。文末附速查清单与常见误区,适合初学者循序渐进或复习自查
2026-10-02 10:09:52
1077
69
原创 一篇讲透位运算:从基础操作到经典技巧(Java 版,附速查表 + LeetCode 题单)
本文为小谢同学整理的位运算算法笔记,涵盖基础运算、位操作技巧(如取位、置位、提取最右1、清除最右1)、lowbit原理及经典应用(如统计1的个数、判断2的幂),并强调位运算优先级与安全写法。附带Java速查表与LeetCode刷题清单,适合算法初学者系统学习与复习。
2026-09-28 16:55:03
335
21
原创 MySQL进阶|游标与条件处理程序:存储过程逐行捕获异常
本文详解MySQL中游标与条件处理程序的使用。游标用于存储过程中逐行遍历查询结果,需经历声明、打开、读取、关闭四步,但存在内存占用高、大表性能差等缺点。结合条件处理程序(HANDLER)可捕获NOT FOUND等异常(如游标读取完毕报错1329),通过CONTINUE或EXIT控制流程,实现健壮性处理。文中提供完整示例,展示如何用游标+HANDLER实现安全遍历并插入数据,强调优先使用集合操作替代游标。
2026-09-25 14:51:03
339
25
原创 JVM 垃圾回收机制详解:从标记过程、回收算法到垃圾收集器
本文系统梳理 JVM 垃圾回收机制,讲解堆内存分区、GC Roots 可达性分析,详解标记‑清除、复制、标记‑整理三大基础回收算法,对比 Serial、Parallel、CMS、G1、ZGC 多款垃圾收集器,分析各自优缺点与适用场景,帮助开发者吃透 GC 底层原理,理解内存管理,提升 Java 性能调优能力。
2026-09-19 19:34:39
807
52
原创 前端基础:常见CSS选择器用法
本文为小谢同学整理的前端CSS选择器详解,涵盖基础选择器(标签、类、ID、通配符)、复合选择器(后代、子元素、并集、兄弟选择器)、属性选择器、伪类与伪元素选择器,并重点对比nth-child与nth-of-type差异,附完整代码示例,帮助初学者掌握常用选择器用法,提升样式编写能力。
2026-09-19 19:33:54
337
43
原创 MySQL进阶:流程控制之选择与循环(IF/CASE/WHILE全覆盖)
本文系统讲解MySQL流程控制语句,涵盖选择结构(IF、CASE)与循环结构(WHILE、REPEAT、LOOP),结合存储过程实现条件判断与批量操作。通过分数评级、用户状态匹配、1-100求和及数据批量插入等案例,演示语法用法与实际应用场景,强调在存储过程中的使用规范及DELIMITER设置的重要性,助力读者掌握MySQL高级编程能力。
2026-09-16 17:16:39
192
13
原创 Java 类加载全过程 & 双亲委派模型
本文系统梳理了Java类加载的全过程:加载、验证、准备、解析与初始化,并深入解析双亲委派模型的层级结构与工作流程。重点说明类加载各阶段的核心任务,如内存分配、符号引用转换及静态成员初始化,强调主动使用触发初始化的六大场景。结合实例阐明双亲委派机制在保障安全性与避免重复加载中的关键作用,助力理解JVM类加载机制的本质。
2026-09-15 16:26:23
312
17
原创 从输入 URL 到页面展示到底发生了什么?
本文从输入 URL 开始,完整梳理浏览器请求到页面展示的全流程,拆解 TCP/IP、HTTP 协议、DNS 解析等计算机网络核心知识点,适合 Java 后端学习者夯实网络底层基础。
2026-09-10 19:17:23
234
13
原创 前缀和算法入门|一维前缀和模板详解(Java)
本文讲解一维前缀和算法原理,对比暴力解法,分析时间、空间复杂度,提供可直接运行的 Java 模板代码,帮你快速掌握区间求和的高效解题思路。
2026-09-07 19:07:06
261
12
原创 HTTPS 加密流程深度解析|从 HTTP 痛点到 TLS 握手全过程
本文从 HTTP 明文传输的安全风险入手,讲解中间人攻击带来的数据窃听篡改问题。逐步拆解 HTTPS 的实现思路:对称加密、非对称加密密钥交换、CA 数字证书防中间人篡改,完整梳理 TLS1.2 握手全流程,同时对比 TLS1.3 优化点,梳理面试高频考点,帮你彻底搞懂 HTTPS 加密原理。
2026-09-06 23:18:17
688
47
原创 计算机网络:Fiddler 抓包工具使用教程 + HTTP 协议报文格式详解
本文为计算机网络实战笔记,详细讲解抓包工具 Fiddler 的下载安装、基础配置、实操抓包流程,结合实例演示抓取 HTTP 请求与响应报文。同时深入剖析 HTTP 请求报文、响应报文的完整结构,梳理请求头、响应头常见字段含义,并且纠正网络上流传的 GET 与 POST 常见误区,厘清二者的真实区别。适合 Java 后端、测试开发方向的同学夯实 HTTP 协议底层基础,做到理论结合抓包实操,加深对 Web 网络通信原理的理解。
2026-09-04 18:46:49
520
7
原创 计算机网络|数据链路层详解:MAC 地址、交换机、ARP 协议、CRC 校验
本篇为计算机网络数据链路层完整学习笔记。讲解数据链路层三大核心任务:封装成帧、CRC 差错检测、可靠传输机制;详细介绍以太网、MAC 地址、二层交换机自学习转发原理、ARP 协议通信流程;文末整理高频面试题,解答 CRC 出错处理、跨网段 ARP 获取网关 MAC 等常考问题。适合计科自学、面试复盘,带你吃透二层网络通信原理。
2026-09-01 15:44:54
1793
30
原创 计算机网络‑IP 协议解析:核心特性总结
一文吃透 IP 协议与 NAT 原理。本文讲解 IP 协议特性、数据包分片重组、NAT 地址转换全过程,配有可视化通信流程图,汇总 NAT 高频面试题,带你搞懂内网、外网之间的数据转发机制,夯实 TCP/IP 网络基础。
2026-08-30 01:11:29
411
33
原创 计算机网络‑TCP 协议原理与特性解析
本篇文章从 TCP 报文头部结构入手,讲解 TCP 协议可靠传输七大特性、提升传输性能的四大机制,包含滑动窗口、延时应答、捎带应答等核心知识点。文末整理了三次握手、四次挥手、TIME‑WAIT、流量控制与拥塞控制等后端高频面试题,适合计算机网络初学者、后端与测试开发求职者复习背诵。
2026-08-27 14:51:11
1039
35
原创 MySQL 进阶笔记:用户 / 会话 / 全局 / 局部变量 + CASE 分支语法
本文讲解 MySQL 四大变量:系统全局 / 会话变量、用户自定义变量、局部变量,对比三者作用域区别;并且讲解存储过程 IF 分支、CASE 分支语法,附带经典行转列实战案例,附带原理拆解,适合后端开发者巩固 MySQL 存储编程基础。
2026-08-25 21:19:25
307
4
原创 UPD协议结构以及开发中注意事项
摘要 UDP协议是一种无连接、不可靠的传输层协议,核心特性包括面向数据报、全双工通信,固定8字节头部使其开销极小。UDP报文结构包含源/目的端口、长度和校验和字段,其中校验和计算会使用伪首部进行辅助验证。编程开发时需注意:单次传输数据不宜超过64KB;接收缓冲区满会导致丢包;connect()仅作地址缓存;需自行处理丢包乱序问题;端口与TCP独立;支持广播/组播功能。开发者还需关注系统校验和设置及receive()阻塞特性,合理设置超时机制。
2026-08-16 22:03:58
236
5
原创 计算机网络基础概念完整梳理|用快递案例通俗理解网络核心名词
本文通过寄快递的生动类比,系统讲解了计算机网络的核心概念。主要内容包括:IP地址(收货地址)、端口号(收件人)、网络协议(快递规则)、五层协议体系(物理层如公路、传输层如寄收件人、网络层规划路线等)。重点阐述了数据封装(打包快递)与分用(拆快递)过程,以及客户端-服务器模型(寄件人与驿站)的请求-响应机制。最后以寄零食为例,完整演示了两台主机间数据从应用层到物理层的封装传输及反向拆包过程,帮助读者形象理解网络通信全流程。
2026-08-10 01:03:16
289
5
原创 硬盘与 IO 原理学习笔记
本文系统梳理硬盘与IO的底层原理,分为四部分:1)区分内存/外存及硬盘类型(HDD/SSD);2)详解机械硬盘物理结构(盘片/磁头/扇区);3)解析IO流程(用户态/内核态切换、缓冲机制)及阻塞/非阻塞模式;4)阐述文件系统树形结构(inode索引、目录映射)与存储规则(默认4KB块读写)。通过硬件到软件的层次化讲解,为理解Java文件IO奠定基础。
2026-08-09 14:31:51
204
6
原创 Java 文件IO :File 文件类、字节流、字符流讲解
本文系统讲解了Java IO操作的核心类与方法,分为四部分:1. File类:管理文件路径与属性,详解构造方法及四类操作方法(信息获取、状态判断、创建删除遍历、权限判断)。2. 字节流:InputStream和OutputStream的构造与read/write方法,适配所有文件格式。3. 字符流:FileReader和FileWriter专用于文本文件,解决中文乱码问题。4. PrintWriter:便捷打印输出流的构造与常用方法。通过代码示例对比getAbsolutePath与getCano
2026-08-08 18:20:45
619
4
原创 HashMap、HashTable、ConcurrentHashMap详细区别
本文对比分析了HashMap、HashTable和ConcurrentHashMap的核心差异,重点从线程安全、null值规则、容量机制等维度展开。HashTable因全局锁导致并发性能差,已不推荐使用;ConcurrentHashMap通过分段锁/桶节点锁实现高并发,性能优势显著。文章还解答了常见面试问题,如HashMap的线程不安全表现、ConcurrentHashMap禁止null值的原因等,适合作为Java并发集合知识的复习资料。
2026-08-05 21:50:19
184
5
原创 synchronized 完整复盘,特性 + 用法 + 锁升级全拆解
本文系统梳理了Java中synchronized关键字的核心特性和使用方式。主要内容包括:1) synchronized保障原子性、可见性和有序性三大特性,具备可重入性和自动释放锁机制;2) 四种使用方式:修饰普通方法、代码块、静态方法及锁定Class对象;3) 底层锁升级机制:从偏向锁到轻量级锁再到重量级锁的单向升级流程;4) wait/notify的正确使用规范,强调必须与synchronized配合使用且需同一锁对象。文章通过代码示例和类比帮助理解,完整呈现了synchronized的核心机制和使用要
2026-08-02 16:56:48
258
1
原创 Java 线程池入门详解:线程池基础定义 + ThreadPoolExecutor 全参构造方法逐参数解析
本文详细介绍了Java线程池的核心概念和使用方法。主要内容包括: 线程池概念:预先创建线程复用,降低资源消耗,提升响应速度和管理效率。 ThreadPoolExecutor的七大核心参数: corePoolSize/maximumPoolSize:核心线程与最大线程数 keepAliveTime/unit:临时线程空闲回收规则 workQueue:任务阻塞队列(推荐使用有界队列) threadFactory:线程创建工厂(建议自定义线程名) handler:四种拒绝策略(推荐CallerRunsPolicy
2026-08-01 15:55:55
241
2
原创 MySQL 存储过程详解:概念、创建与删除全教程
MySQL存储过程是一组预编译的SQL语句集合,存储在数据库中,可通过名称和参数调用执行。它类似于编程中的函数,支持参数传递、流程控制和事务管理。存储过程能提升性能(一次编译多次执行)、实现代码复用、增强安全性,但存在可移植性差、调试困难等缺点,不适合高并发场景。适用场景包括批量数据处理、复杂SQL组合等。文章详细介绍了无参、带参存储过程的创建语法及调用方法,并通过学生表查询示例演示了具体操作。存储过程将业务逻辑移至数据库层,减轻应用层负担。
2026-07-26 10:38:11
533
5
原创 从零上手多线程单例:饿汉、懒汉、静态内部类、枚举全覆盖
本文详细介绍了四种线程安全的单例模式实现方式:1)饿汉式(类加载时创建实例);2)DCL懒汉式(双重检查锁延迟加载);3)静态内部类(利用JVM类加载机制保证线程安全);4)枚举单例(天然防反射和序列化破坏)。通过代码示例和类比说明,分析了每种方式的实现原理、线程安全保证机制及适用场景,其中枚举单例被强调为最安全可靠的实现方式。所有实现都通过实例验证了对象的唯一性。
2026-07-24 21:14:27
201
3
原创 Java 线程安全问题成因及解决方案
本文围绕 Java 并发三大核心特性:原子性、可见性、有序性展开讲解,从 CPU 缓存、JMM 内存模型剖析多线程并发错乱底层成因。详细拆解`synchronized`同步锁的三类使用方式、底层原理,该关键字可一次性保障三大并发特性;同时讲解`volatile`关键字的能力边界,其仅支持可见性与有序性,无法实现原子性,针对自增操作等场景存在明显局限性。文章梳理两类关键字适用场景,搭配代码案例区分使用边界,整理完整选型方案,帮开发者快速理清多线程线程安全的选型逻辑。
2026-07-23 15:55:16
241
4
原创 一文吃透 Java 线程 6 大状态:状态含义、流转切换条件
Java线程共有6种状态:NEW(新建)、RUNNABLE(可运行)、BLOCKED(同步阻塞)、WAITING(无限等待)、TIMED_WAITING(限时等待)和TERMINATED(终止)。这些状态通过特定条件相互转换,例如调用start()使线程从NEW转为RUNNABLE,同步锁竞争失败进入BLOCKED,调用wait()或join()进入WAITING等。理解这些状态及其转换机制对多线程编程和问题排查至关重要。
2026-07-20 21:18:12
305
5
原创 Java Thread 类基础用法完整总结 —— 线程创建、中断、等待、休眠、线程实例获取、分清为start/run,避开sleep坑点
Java线程基础核心用法总结 本文系统介绍了Java Thread类的五大核心用法: 线程创建:通过继承Thread类、实现Runnable接口(推荐)以及Lambda表达式简化创建过程,重点区分start()与run()方法的本质区别。 线程中断:详解interrupt()中断标记、isInterrupted()判断状态和interrupted()清除标记三种中断机制。 线程等待:使用join()实现线程同步,包括无限等待和限时等待两种方式。 线程休眠:sleep()方法的使用规范及其中断异常处理。 线程
2026-07-20 15:06:25
445
10
原创 一文分清进程、线程
本文系统讲解了操作系统中的进程与线程概念及其区别。主要内容包括:1)进程是资源分配的最小单位,具有独立内存空间和系统资源,由PCB(进程控制块)管理;2)线程是CPU调度的最小单位,共享进程资源,由TCB(线程控制块)管理;3)关键区别在于资源分配方式(独立vs共享)、容错性(进程互不影响而线程可能相互影响)、资源冲突概率(线程更易发生)以及各自在系统中的角色定位(资源分配vs调度执行)。通过橘子加工厂的生动比喻,形象说明了进程与线程的资源共享关系和相互影响机制。
2026-07-19 15:22:43
302
6
原创 事务原子性、一致性、隔离性、持久性通俗讲解
文章摘要 本文系统讲解了MySQL事务的核心概念与应用。首先介绍了事务的四大特性(ACID):原子性、一致性、隔离性和持久性,并通过转账案例说明事务的必要性。接着详细解析MySQL事务语法,包括START TRANSACTION、COMMIT和ROLLBACK的操作演示,对比了InnoDB与MyISAM引擎对事务的支持差异。最后深入探讨事务隔离级别(读未提交、读已提交、可重复读、串行化),分析不同级别下的并发问题(脏读、不可重复读、幻读),帮助读者理解性能与数据安全的权衡。全文结合实例代码,适合开发者掌握事
2026-07-17 15:50:10
209
6
原创 一文吃透 MySQL 索引【基础篇】:B + 树入门、简易页存储、索引分类与索引覆盖实战
MySQL索引入门摘要 本文系统讲解MySQL索引核心知识,包括: 索引本质:优化查询的数据结构,类似书籍目录,避免全表扫描 数据结构:对比B树和B+树,详解B+树在范围查询、磁盘IO等方面的优势 存储结构:InnoDB使用16KB数据页存储,基于局部性原理提升查询效率 索引分类:主键/普通/唯一/全文/聚簇/非聚簇索引及索引覆盖原理 实操指南:索引创建、查看、删除方法及使用注意事项 底层原理:B+树在MySQL中的具体应用实现 作为索引基础篇,重点解析索引概念、分类与基础操作,帮助开发者掌握数据库性能优化
2026-07-13 14:35:14
413
13
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅