Logo O泡李华 所见有记,所想有迹
首页
文章
关于
作品集
简体中文 繁體中文 English Español
avatar

O泡李华

牛马一枚

44 文章 9 分类 9 标签
Wechat
目录
思想碎片 查看全部
HaloJava算法AIgitAPIdockerLinuxJava基础
文字花园 查看全部
git 1
微服务 1
Linux 1
AI 1
API文档 1
Java算法笔记 6
最新文章 查看全部
Knife4j介绍与Spring-Boot接入笔记 2026-08-16
Docker入门与常用命令笔记 2026-08-11
红黑树学习笔记 2026-08-10
树与动态规划学习笔记 2026-08-10

Java笔记

31 篇文章
查看全部

文章列表

12-MySQL事务MVCC与锁

事务之间怎样相处?MVCC、锁等待与死锁恢复 同一个事务里读取可能看到旧值,更新却作用于新值;没有查到记录,也可能阻止其他会话插入。理解这些现象,需要把版本读取与锁定访问分开,不能只背可重复读的定义。 具体 SQL 观察沿用原有 MySQL 8.0.29 示例。不同实验先执行自己的数据准备,执行计划

Java基础
O泡李华 2026-04-02 6

11-SQL优化与执行计划

慢 SQL 怎样优化?从查询语义到执行计划证据 EXPLAIN 显示使用索引,接口依然很慢;增加一个索引后,排序好了,返回大字段又变慢。索引只是访问路径的一部分,优化要回答究竟减少了哪些扫描、回表、排序或等待。 具体 SQL 观察沿用原有 MySQL 8.0.29 示例。不同实验先执行自己的数据准备

Java基础
O泡李华 2026-03-25 5

10-MyBatis执行链与更新一致性

Mapper 背后发生了什么?MyBatis 执行链与更新一致性 Mapper 只有接口,没有手写实现,SQL 却可以执行;同一查询调用两次,又不一定发送两次 SQL。理解代理、会话和执行器之后,分页、乐观锁及逻辑删除才能被放进正确的业务边界。 涉及 Spring 的示例沿用 Java 17、Spr

Java基础
O泡李华 2026-03-15 6

09-Spring事务与代理边界

Transactional 为什么没生效?代理、异常与事务边界 方法已经加了 Transactional,失败后数据却没有回滚。最值得先问的是:调用是否经过代理,异常是否穿过事务边界,以及几次写入是否使用同一个事务资源。注解只能参与机制,不能替代这些条件。 涉及 Spring 的示例沿用 Java

Java基础
O泡李华 2026-03-10 8

08-SpringBean与自动配置

Spring Boot 为什么能自动装配?Bean 生命周期与条件配置 加入 starter 后接口就能调用,自己定义一个 Bean 后默认实现又消失了。这不是依赖下载时发生了魔法,而是容器创建、配置发现和条件判断共同决定最终对象。理解这些机制,也能解释升级后为何选中了不同实现。 涉及 Spring

Java基础
O泡李华 2026-03-05 5

07-SpringMVC请求全链路

一次 HTTP 请求怎样穿过 Spring MVC?从入口到 JSON 响应 Controller 没有进入,返回值却能变成 JSON,参数无效时又是谁提前拦下请求?沿着一次请求逐层观察,比记住一串组件名称更容易理解 Spring MVC,也能更快定位 404、400 和异常响应。 涉及 Sprin

Java基础
O泡李华 2026-03-02 5

06-Java服务性能排障

Java 服务变慢怎样定位?从 CPU、GC 到内存保留链 服务响应越来越慢,是死循环、频繁 GC、堆外增长,还是等待数据库?一张内存曲线或一行 GC 日志无法回答这些问题。排障需要把系统现象、线程证据和对象保留关系放在同一条推理链上。 CPU、堆转储和 GC 的 Main.java 是三个独立示例

Java基础
O泡李华 2026-03-01 7

04-线程池容量与异步任务

线程池为什么越调越慢?队列、拒绝与异步任务设计 接口变慢后,把最大线程数调大,结果响应没有改善,内存和下游压力反而升高。线程池是在有限资源下安排工作,不是把所有排队都变成并行执行。理解任务如何进入队列,才能解释参数为什么没有按预期起作用。 1. 先看任务流转,而不是先填参数 线程、队列与拒绝共同形成

Java基础
O泡李华 2026-02-20 3

03-并发正确性与共享状态

并发正确性从哪里来?原子性、可见性与共享状态 给字段加 volatile,计数仍会丢;换成 ConcurrentHashMap,先判断再写入仍可能竞争。问题不在于工具名字是否带 Concurrent,而在于程序需要保护的是单次读写,还是由多次操作组成的业务条件。 1. 拆开一条看起来简单的语句 先看

Java基础
O泡李华 2026-02-15 6

02-Java集合泛型与资源边界

Java 集合与泛型:怎样把错误挡在编译期? 一个 List 可以编译,却在读取时抛出类型转换异常;一个 LinkedList 声称擅长插入,却在按下标循环时越来越慢。集合选择和类型设计不是互不相关的知识点,它们共同决定接口允许什么,以及操作需要付出什么成本。 1. 操作方式决定容器成本 先按访问、

Java基础
O泡李华 2026-02-14 6
上一页 3 / 4 下一页
O泡李华 | 辽ICP备2025067932号-2 | Copyright (c) 2026 O泡李华. 版权所有