自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(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

原创 零基础如何制作一个简单的个人网页

准备工作:只需要一个文本编辑器,首推VS Code(功能强大,并且免费)

2025-09-09 09:25:43 1617

原创 Java数组复制:浅拷贝与深拷贝

在java中,如果要复制数组有多种方法,但简单可归为两类:浅拷贝和深拷贝。

2025-08-10 19:45:00 766

原创 深入解析进程与线程的区别

进程是一个正在运行的程序的实例,是操作系统进行资源分配的基本单位。

2025-07-28 00:22:32 1262

原创 代码中哪些你以为不是很重要的细节之 运算符与逻辑控制

左移运算(<<左移操作可能会导致数据溢出。当左移后的结果超出数据类型所能表示的范围时,高位会被丢弃。例如在 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关注的人

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