- 博客(21)
- 收藏
- 关注
原创 MySQL 事务为什么可靠?一文讲懂 ACID、隔离级别、MVCC 与锁
事务是一组具有明确边界的数据库操作,它们作为一个整体提交或回滚,目的是保证复杂业务操作的数据正确性。多条 SQL 需要作为整体执行↓事务通过 COMMIT 或 ROLLBACK 确定结果↓ACID 描述可靠事务应具备的特性↓并发执行产生脏读、不可重复读和幻读等问题↓隔离级别决定事务之间能看到什么↓InnoDB 使用 MVCC、undo、redo 和锁共同支撑事务。
2026-10-27 17:56:44
299
原创 MySQL 索引为什么能加快查询?一文讲懂 B+ 树、回表与最左前缀
通过二级索引找到主键后,再根据主键到聚簇索引中读取完整行,这个过程叫回表。查询所需的条件列和返回列都能从某个索引中取得,不需要再访问聚簇索引取完整行,这个索引对本次查询就是覆盖索引。联合索引按定义时的列顺序逐级排序。查询通常要从索引最左列开始连续匹配,才能充分利用其有序性快速确定扫描范围。没有合适索引时,MySQL 可能需要扫描大量数据索引本质上是额外维护的有序数据结构B+ 树多叉、矮胖,能够快速缩小查找范围B+ 树叶子节点有序相连,因此适合范围查询。
2026-09-05 11:56:05
327
原创 零基础学 MySQL(下):约束、索引、事务、设计规范,补齐学生选课系统的核心底层逻辑
很多人觉得数据库难,往往不是因为 MySQL 本身太难,而是因为学习路径太碎。今天记一条语句,明天背一个定义,后天再看一点索引,最后脑子里只有零散片段,很难形成真正可用的理解。知道数据为什么要这样组织知道查询为什么要这样写知道约束、索引、事务分别在解决什么问题当你开始用“问题意识”去理解 MySQL,而不是只背命令,你会发现数据库其实比想象中清晰得多。前路漫漫,同频的人终会奔赴同一个方向✨后续还会持续输出更多实用教程📚创作不易,还请多多支持!💖。
2026-09-03 16:29:40
342
原创 零基础学 MySQL(中):条件查询、排序、分组、连接查询,一篇吃透学生选课系统实战
很多人学 MySQL 最大的瓶颈,不在建表,而在查询。你想解决什么问题这些数据在哪张表里哪些条件要先筛哪些结果要后统计表和表之间怎么关联而这,恰恰就是数据库学习最有价值的地方。前路漫漫,同频的人终会奔赴同一个方向✨后续还会持续输出更多实用教程📚创作不易,还请多多支持!💖专栏下一篇:零基础学 MySQL(中):条件查询、排序、分组、连接查询,一篇吃透学生选课系统实战。
2026-09-01 15:59:00
340
原创 零基础学 MySQL(上):从建库建表到增删改查,一篇搭好 SQL 基础
设计字段 → 创建数据库 → 创建数据表 → 插入数据 → 查询验证 → 修改和删除。但真实系统不会只有一张表,也不会永远只查全部数据。下一篇将继续使用学生选课系统,讲清条件查询、排序、聚合、分组和多表连接,让你从“会查数据”进阶到“能从数据中得到结果”。前路漫漫,同频的人终会奔赴同一个方向✨后续还会持续输出更多实用教程📚创作不易,还请多多支持!💖专栏下一篇:《零基础学 MySQL(中):条件查询、分组统计与多表连接》《Java 技术精讲:并发与核心组件》
2026-08-24 12:19:56
257
原创 Anaconda 被误删抢救手册:从绝望到重生
不慌:先确认文件是否真的被删除备份:环境和配置是救命稻草重装:环境可以通过或手动恢复防护:养成定期备份和环境隔离习惯彩蛋:养成每次新建环境就导出。
2026-03-20 19:40:51
445
原创 理解 AQS:Java 并发同步的基石
AQS是java并发编程的基石,其设计思路的核心是:1.用模版方法模式分离通用与定制逻辑,降低自定义同步工具的开发成本。2.用保证同步状态下的线程安全,这是并发编程的基础技巧。3.用CLH队列实现高效的线程等待,优化并发性能。那些你熬夜努力的时光,那些你觉得太累再也站不起来,却依然支撑自己起身的夜晚,那才是梦想的力量。
2025-12-18 11:15:08
1045
2
原创 原子类操作核心:CAS算法的优缺点解析
在编程中,原子操作指的是不可被中断的最小的操作单元,要么完整执行完毕,要么完全不执行,就像物理中的 “原子” 一样不可分割。而原子类操作,在编程语言中是为了方便开发者实现原子操作 而提供的工具类(比如java中concurrent.atomic包下的AtomicInteger,AtomicLong等等),这些类的核心就是基于我们的CAS算法实现线程安全的操作,无需使用synchronized等重量级锁。用一个例子来说明:普通变量和原子类变量。
2025-12-14 22:12:41
1046
1
原创 Java 反射:让程序拥有 “看透“ 类的能力
反射是java中一种强大的而且灵活的机制,它让程序拥有了在运行时”洞察“类结构并动态操作的能力。理解反射不仅能帮助我们更好地使用各种框架,也能在需要编写通用工具类时候提供强大支持。但记住,反射是一把”双刃剑“,在带来灵活性地同时也会付出性能和安全性地代价。所以,我们应该在合适地场景使用它,而不是滥用。
2025-11-16 20:00:00
696
1
原创 为什么说单例模式是 Java 开发里的 “全局独苗”?一篇讲透它的核心逻辑
如果用一句话来总结单例模式,就是:“按需创建一个全局唯一的实例,用它来管理统一的资源或者状态”。它不复杂,核心是抓住“唯一”和“全局访问”这两个点;选择实现方式,不用纠结——简单场景用饿汉模式,需要懒加载用静态内部类,就能满足大部分开发需求。
2025-11-15 17:59:02
795
1
原创 深入浅出线程池:解析线程池
线程池是一种多线程处理形式,它维护着一个线程集合,可以重复利用线程来执行多个任务,从而减少线程创建和销毁的开销,提高程序性能。在 Java 中,线程池(Thread Pool)是一种管理和复用线程的机制,它预先创建一定数量的线程,将任务提交到线程池后,线程池会分配空闲线程执行任务,任务完成后线程不会被销毁,而是回到线程池等待新任务,从而避免频繁创建和销毁线程的开销。线程池是并发编程的 "瑞士军刀",它通过复用线程、控制并发、缓冲任务,解决了线程频繁创建销毁的性能问题。
2025-10-20 11:21:30
953
原创 什么是阻塞队列?一篇文章带你搞懂
阻塞队列是一种支持“阻塞式插入”和“阻塞式移除”的队列:阻塞式插入:当队列已经满的时候,尝试往队列中添加元素的线程会被“阻塞”,直到队列有空闲空间(其他线程移除了元素),才会被唤醒继续执行插入。阻塞式移除:当队列为空的时候,尝试从队列中获取元素的线程会被“阻塞”,直到队列中有新元素(其他线程插入了元素),才会被唤醒继续执行移除。举个例子:快递柜就是一个很典型的“阻塞队列”:假如所有格子都满了(队列满了),快递员(插入线程)无法放入快递,只能等待有人取走快递(队列空闲);
2025-10-11 22:35:38
689
原创 线程安全:多线程编程
线程安全指的是当多个线程同时访问和操作某个程序、函数、变量或数据结构时,不会出现竞态条件、数据不一致、死锁等导致程序运行错误或产生不可预期结果的情况,程序依然能够正确地执行,得到符合预期的结果。简单来说就是多个线程处理同一份数据的时候,没有“排队”和“有序”,处理数据的时候各自处理自己的,导致数据错乱。
2025-09-25 22:52:38
936
原创 代码中哪些你以为不是很重要的细节之 运算符与逻辑控制
左移运算(<<左移操作可能会导致数据溢出。当左移后的结果超出数据类型所能表示的范围时,高位会被丢弃。例如在 Java 中,int类型是 32 位,若不断左移可能会使结果变为 0。左移一位相当于乘以 2,但这种优化仅适用于整数运算,对于浮点数不适用。算术右移(>>算术右移保持符号位不变,负数右移时左边补 1,这可能会影响对结果的预期。例如-8 >> 2结果是-2,而非简单的截断。逻辑右移(>>>Java 中>>>是无符号右移,仅用于int和long类型。
2025-03-16 13:11:54
1018
原创 一篇文章带你搞懂java的历史和java环境
2011年,Java 7发布,增加了一些新特性。2014年,Java 8发布,引入Lambda表达式等,是Java 5.0以来最大的一次更新,提高了Java的函数式编程能力。java 命令会启动Java虚拟机(JVM),JVM加载字节码文件到内存中,并将字节码解释或编译成机器码,在不同的操作系统上执行,最终输出程序的运行结果。- 持续发展与新特性(2010年代 - 至今):Java在后续版本中不断改进,如Java 9引入模块化系统,Java 11成为长期支持版本,Java 17也带来了一些重要更新。
2025-03-05 16:06:53
737
1
原创 互联网大厂实习所需技术能力概括
负责AIGC大模型(文本、多模态等方向)在到家IM渠道落地(C端和B端落地);负责跟踪和探索LLM(如LLama2等开源模型)、视觉理解等前沿技术,包括并不限大模型微调对齐、大模型领域知识增强、大模型策略优化、RLHF模型优化、Agent;
2025-03-03 21:57:15
2060
原创 java中构造方法解析
所以我们在创建对象的时候,可以使用不同的构造方法:我们在编程中创建对象一般会用到这种方法来创建对象,而这个括号的作用就是来传参,传参就是传递参数。但是要先写一个确定传入参数类型和名称的构造方法。
2024-12-04 21:11:58
439
1
原创 java类与对象
对象可以包含方法,方法是对象能够执行的操作。例如:在学生对象中,学生会学习课程以及考试获得学分,在这个过程中,我们发现学生对象有学习的动作还有考试的行为。当调用学生这个类时候,学分就会相应的增加。方法:相当于类的行为,也就是类可以执行的操作。方法中可以包含语句块,用来实现具体的功能,并且可以接收参数以及返回相应的值(也可以无返回值,用。用于描述类所具有的各种特征。它们可以有不同的数据类型。变量可以在类中进行初始化,也可以通过对象创建后再赋值。例如:在学生对象里面,属性可能包括姓名、年龄、学号、、成绩等等。
2024-12-01 16:20:22
382
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅