自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 数据库聚合查询完整教程:从基础函数到实战统计

聚合查询是数据库中最常见的统计分析方式,它可以把表中的多行数据按照一定规则汇总成一行结果。例如,统计用户总数、计算订单金额总和、求某门课程的平均分等,都离不开聚合查询。聚合函数:用于对某一列或多列的数据执行计算,如COUNTSUMAVGMAXMIN。GROUP BY:用于把数据按指定字段分组,再对每个分组分别执行聚合计算。下面先准备一张示例表,后续所有 SQL 都基于这份数据展开。(1, '张三', '手机', '电子产品', 3999.00, '已完成', '2024-01-05'),

2026-10-27 22:10:02 104

原创 数据库增删改查:从 SQL 基础到实践要点

增删改查对应英文中的 Create、Read、Update、Delete,常被简称为 CRUD。对应到 SQL 语言中,分别是 INSERT、SELECT、UPDATE 和 DELETE 四类语句。无论是用户注册、商品查询、订单修改还是记录删除,业务的每一次数据变动最终都会落到这几类操作上。理解增删改查,不只是记住语法,更重要的是理解数据表结构、约束条件以及操作带来的影响范围。一个看似简单的删除语句,如果缺少 WHERE 条件,可能直接清空整张表。

2026-10-26 23:20:47 210

原创 数据表操作完全指南:建表、改表、删表与增删改查详解

- 修改列的数据类型-- 同时修改列名和定义MODIFY只改列定义,CHANGE可以同时重命名列并修改定义。数据表操作贯穿数据库应用的始终。建表、改结构、DROP TABLE删表,以及INSERTSELECTUPDATEDELETE四类数据操作。在此基础上,再结合索引优化查询、外键维护关联关系,就能覆盖绝大多数业务场景。建议动手把文中的示例完整执行一遍,遇到报错时通过和DESC排查表结构问题。

2026-10-25 23:56:07 176

原创 数据库操作完整教程:从基础到实战

本文系统介绍了数据库操作的核心内容,包括建库建表、增删改查、高级查询、事务处理以及索引优化。掌握这些基础知识后,建议进一步学习数据库设计规范、存储引擎原理、读写分离和分布式数据库等内容。实践是最好的学习方式,建议读者在本地搭建数据库环境,运行本教程中的示例,并尝试自己设计表结构和查询语句,逐步积累实战经验。

2026-10-23 23:47:26 222

原创 MySQL 数据库基础:从入门到熟练的完整教程

在正式开始学习 MySQL 之前,我们先厘清几个关键概念。数据库是用于组织、存储和管理数据的仓库,而数据库管理系统(DBMS)则是帮助用户创建、维护和使用数据库的软件。MySQL 就是目前最流行的开源关系型数据库管理系统之一。关系型数据库把数据组织成一张张相互关联的表。每张表由行和列组成:一行表示一条记录,一列表示一个字段。例如,一张学生表可能包含学号、姓名、年龄和班级等字段,每行则对应一名学生。开源免费:社区版可以免费使用,适合学习和中小企业项目。性能较高。

2026-10-21 22:16:29 350

原创 Java 哈希表完全教程:从 HashMap 原理到源码实战

哈希表(Hash Table)是一种通过“键值对”形式存储数据的结构,核心思想是把键映射到一个内部数组的下标,从而实现接近 O(1) 的平均查找、插入和删除效率。Java 中最常用的实现就是HashMap,它是基于哈希表原理设计的集合类。哈希表解决的核心问题是:当数据量很大时,如何不用逐个比较就能快速定位元素。它借助散列函数把任意键转换为整数索引,例如把字符串"name"映射到数组的第几个位置,然后直接访问该位置。哈希表 = 数组 + 散列函数 + 冲突处理机制。

2026-10-07 19:48:12 315

原创 Java 排序算法详细教学:从冒泡排序到快速排序

排序算法平均时间复杂度最坏时间复杂度空间复杂度稳定性冒泡排序O(n²)O(n²)O(1)稳定选择排序O(n²)O(n²)O(1)不稳定插入排序O(n²)O(n²)O(1)稳定希尔排序取决于间隔O(n²)O(1)不稳定归并排序O(n log n)O(n log n)O(n)稳定快速排序O(n log n)O(n²)O(log n)不稳定堆排序O(n log n)O(n log n)O(1)不稳定计数排序O(n + k)

2026-09-25 20:30:00 253

原创 Java堆(Heap)详解与实战教学

Java堆(Heap)是Java虚拟机(JVM)内存区域中最大的一块,也是所有线程共享的内存区域。它随着虚拟机的启动而创建,唯一的目的就是存放对象实例。在Java规范中,几乎所有的对象实例以及数组都在堆上分配内存。从本质上说,Java堆是垃圾收集器管理的主要区域,因此它也被称为“GC堆”。堆的大小既可以是固定的,也可以动态扩展。当堆中没有足够内存完成实例分配且堆无法再扩展时,虚拟机会抛出。理解堆对开发人员非常重要,因为绝大多数性能问题、内存泄漏问题和垃圾回收调优问题,都发生在这一块区域。

2026-09-01 20:30:00 318

原创 Java 二叉树重点题型讲解:从遍历、深度到 LCA 的高频考点

几乎所有二叉树题目都会使用下面这个节点定义。int val;遍历一次树,在遍历过程中收集信息,或者把子问题结果向上合并。因此熟悉前序、中序、后序三种深度优先遍历以及层序遍历,是解决所有题目的基础。遍历类:前中后序、层序、锯齿形、右视图。属性计算类:深度、节点数、直径、平衡判断。结构变换类:翻转、合并、构造二叉树。路径类:路径总和、根到叶路径收集。关系查找类:最近公共祖先、两节点间距离。序列化类:二叉树与字符串互转。建议按照「先刷模板、再刷变形」的顺序练习。这道题属于哪种遍历?

2026-08-23 21:18:23 221

原创 Java 二叉树全方位教学:从基础到面试高频题型,一篇文章搞定

二叉树是每个节点最多只有两个子节点的树形结构,这两个子节点分别称为左子节点(left child)和右子节点一棵二叉树由根节点(root)和若干子树组成,子树本身也是二叉树,这天然适合用递归来处理。int val;// 节点值// 左子节点// 右子节点若左子树不空,则左子树上所有节点的值均小于根节点的值。若右子树不空,则右子树上所有节点的值均大于根节点的值。左右子树也分别是二叉搜索树。中序遍历 BST 得到的是一个严格递增的有序序列,这是 BST 最重要的特性。

2026-08-09 19:12:07 178

原创 Java 队列全面详解:从入门到面试实战

队列(Queue)是一种操作受限的线性数据结构,遵循先进先出(FIFO, First In First Out)原则。它只允许在一端(队尾)进行插入操作,在另一端(队头)进行删除操作。队列就像日常生活中的排队,先进入队列的元素会先被处理。本文从 Java 队列的接口体系出发,详细介绍了普通队列、优先队列、双端队列以及阻塞队列的实现原理和使用场景。队列的 FIFO 特性及其典型应用。Queue、Deque、BlockingQueue 三大接口及其核心方法。

2026-08-06 20:30:00 317

原创 Java 栈(Stack)全面详解:从原理到面试,一篇就够了

栈是最基础的数据结构之一,掌握其原理、Java 中的推荐实现(Deque/ArrayDeque)、典型算法场景和面试高频题,是每个 Java 开发者的基本功。建议读者亲手实现一个简单的栈,并完成本文提到的几道经典算法题,做到真正融会贯通。

2026-08-03 10:14:11 409

原创 Java 链表详解:从基础到面试笔试高频题型

/ 节点类int val;// 单向链表类size = 0;// 获取指定索引的节点值i < index;i++) {// 在头部添加节点size++;// 在尾部添加节点return;// 在指定索引添加节点return;// 删除指定索引的节点size--;return;虚拟头节点(Dummy Node)

2026-07-30 20:30:00 164

原创 Java顺序表从入门到精通:ArrayList深度解析与实战

操作平均时间复杂度add(E e)O(1)(均摊)O(n)O(1)O(1)O(n)O(n)O(n)O(n)为了更好地理解顺序表的原理,我们可以手动实现一个泛型动态数组,模拟ArrayList的核心行为。i++) {通过这个精简版实现,你可以更直观地理解ArrayList的容量管理、数组拷贝和泛型擦除原理。源码中的很多细节(如modCount。

2026-07-23 20:00:00 335

原创 豆包智能体下线如何补救:数据迁移与替代方案全指南

对话流程(Dialog Flow)的 JSON 定义触发条件与规则引擎配置变量定义与上下文管理策略渠道接入配置(如飞书、微信、Web 等)豆包智能体下线虽然带来短期阵痛,但也是重新审视 AI 智能体架构的契机。优先选择开源方案(如 Dify、Rasa),避免再次被单一平台锁定。保留数据导出脚本,定期备份,为未来可能的再次迁移做好准备。关注行业动态,AI 智能体平台仍在快速演进,保持技术选型的灵活性。只要数据完整、迁移方案清晰,豆包智能体下线并不会对业务造成不可逆的影响。

2026-07-19 21:54:31 229

原创 Java异常处理和工具类的完整教程

本教程覆盖了异常机制的核心要点和工具类的工程化实现方式,通过完整代码示例帮助您构建健壮的Java应用程序。实际开发时可根据项目需求扩展工具类集合和异常体系。通常由程序逻辑错误引发(如。

2026-06-08 16:20:17 203

原创 空间复杂度详解

空间复杂度分析是算法设计的核心技能之一。识别主要空间消耗项关联问题规模$n$区分离散存储与连续存储理解递归的栈空间影响在内存敏感场景优先考虑空间优化。

2026-06-08 00:12:49 756

原创 Java数据结构的时间复杂度与空间复杂度

空间优先选择数组(ArrayList操作灵活性和动态性优先链表(LinkedList高效查找/插入优先哈希表(HashMap有序结构优先树(TreeMap。

2026-06-07 22:27:44 235

原创 Java SE 核心技术与平台总结

Java SE 是 Java 平台的基础,为开发和部署桌面、服务器环境和嵌入式环境中的应用程序提供了核心 API 和运行环境。它是构建 Java EE (Enterprise Edition) 和 Java ME (Micro Edition) 应用的基础。Java SE 提供了一个强大、稳定、安全且跨平台的开发环境。它涵盖了从语言基础、面向对象、异常处理、集合、I/O、多线程、泛型、反射等核心编程概念,到数据库连接 (JDBC)、函数式编程 (Lambda, Stream)、模块化等高级特性。

2026-06-03 20:10:09 363

原创 JAVA异常处理详细教学

在Java中,异常(Exception)是程序运行时发生的非正常事件(如除以零、文件未找到)。异常处理使用try-catch目的:避免程序终止,提供错误恢复机制。核心组件trycatchfinallythrow和throws关键字。异常分类Checked Exception(检查型异常):编译时检查,必须处理(如Unchecked Exception(非检查型异常):运行时发生,不强制处理(如Error:系统级错误,通常无法恢复(如步骤:继承Exception。

2026-06-03 18:29:22 165

原创 详细的 Java String 类教程

不可变性确保线程安全字符串池机制优化内存提供丰富的操作方法与配合使用提高效率建议通过实际编码练习掌握各种方法的使用场景,特别注意字符串比较应使用equals()而非==运算符。

2026-05-30 18:30:00 247

原创 Java抽象类与接口详细教程

抽象类和接口是Java面向对象编程的核心概念。抽象类提供了一种部分实现的框架,适合继承关系和状态共享;接口则强调行为契约,支持多重继承和灵活性。从Java 8开始,接口的功能增强(如默认方法)使其更接近抽象类,但本质差异仍在。核心要点:抽象类用于“is-a”关系(如),接口用于“can-do”关系(如最佳实践:优先使用接口定义行为,除非需要共享状态或继承结构时用抽象类。

2026-05-28 21:55:55 212

原创 Java 中包和封装的详细教程

包是 Java 中用于组织类和接口的一种机制。可以将包理解为一个文件夹或命名空间避免命名冲突:不同包中可以有相同名字的类。提供访问保护:包级别的访问控制(如default访问权限)。更好地组织代码:将功能相关的类放在同一个包中,便于查找和管理。便于代码分发和重用:可以方便地将整个包作为一个库发布。封装是面向对象编程(OOP)的四大基本特性之一(其他三个是继承、多态、抽象)。将数据(属性)和操作数据的方法(行为)捆绑在一起,形成一个独立的单元(即类)。限制对对象内部数据和实现细节的直接访问。

2026-05-26 20:40:42 365

原创 Java多态*从新手到熟练掌握

Java多态是面向对象编程的核心支柱之一。扎实基础:理解继承、方法重写、向上转型。深入机制:明白动态绑定、方法调用决议过程、字段/静态方法无多态。熟练应用:在集合操作、接口编程、设计模式中灵活运用多态。遵循原则:面向抽象编程,提高代码的可扩展性、可维护性和灵活性。

2026-05-26 19:37:12 345

原创 Java 继承的详细教学

只有当子类和父类之间逻辑上存在“是一个”的关系时,才使用继承(例如不要为了复用代码而滥用继承。如果两个类之间是“有一个”的关系(例如),应使用组合(在一个类中包含另一个类的实例)而不是继承。过深的继承层次会增加系统复杂性,降低可维护性。@Override总是使用@Override注解来标记覆盖的方法,提高代码可读性和安全性。继承是实现多态的基础,多态极大地提高了代码的灵活性和可扩展性。

2026-05-25 19:53:55 420

原创 Java 类和对象全面教程

类和对象是 Java 面向对象编程的基石。理解类作为蓝图、对象作为实例的概念至关重要。掌握成员变量、方法、构造方法、static关键字、封装以及常见的易错点,是编写健壮、可维护 Java 代码的基础。通过大量练习和注意细节,可以避免这些常见陷阱。

2026-05-23 18:30:00 367

原创 【Java类和对象基础教学(一)】

类(Class):类是一个模板或蓝图,它描述了对象的属性和行为。例如,定义一个“汽车”类,它包含汽车的属性(如品牌、速度)和行为(如加速)。对象(Object):对象是类的具体实例。例如,基于“汽车”类创建一个实际汽车对象,如“我的奔驰车”。关系:类是抽象的(如设计图),对象是具体的(如实物)。数学上,类可以看作一个集合,对象是集合中的元素,即$ \text{对象} \in \text{类} $。在Java中,使用class关键字定义类。字段(Fields):表示对象的属性(变量)。

2026-05-22 16:45:05 214

原创 Java 数组

Java 数组是存储固定大小同类型元素集合的高效工具。掌握数组的声明、创建、初始化、访问、遍历以及常见操作是 Java 编程的基础。理解其内存结构和特性(长度固定、索引从 0 开始)对于避免常见错误至关重要。对于需要动态大小的场景,应转向集合框架(如ArrayList。

2026-05-19 19:17:11 351

原创 JAVA调试的详细教程

以 IntelliJ IDEA 为例进行讲解,但其核心概念和步骤在其他主流 IDE(如 Eclipse)中也类似适用。一个简单的循环计算数组元素之和,但结果不正确。断点是调试的核心,它告诉调试器在何处暂停执行。

2026-05-18 20:29:50 459

原创 C语言扫雷游戏

使用复合结构体存储游戏状态。:单整数存储多重状态。

2026-05-16 19:45:00 34

原创 C 语言 数组

好的,我们将系统地学习 C 语言中的数组,包括其概念、声明、初始化、访问、多维数组以及常见注意事项。好的,我们将系统地学习 C 语言中的数组,包括其概念、声明、初始化、访问、多维数组以及常见注意事项。学习 C 语言中的数组,包括其概念、声明、初始化、访问、多维数组以及常见注意事项。声明数组需要指定元素的类型、数组名以及数组的大小(用方括号。声明数组需要指定元素的类型、数组名以及数组的大小(用方括号。声明数组需要指定元素的类型、数组名以及数组的大小(用方括号。数组中的每个元素可以通过一个索引(下标)来访问。

2026-05-16 17:32:09 327

原创 Java输入输出与方法

Java通过System输出:使用或");// 输出文本并换行// 输出文本不换行输入:需导入类// 导入Scanner包// 创建Scanner对象// 读取整数// 读取字符串// 关闭Scanner定义方法访问修饰符 返回类型 方法名(参数列表) { ... }// 无返回值方法");// 有返回值方法调用方法在main或其他方法中直接调用// 调用无返回值方法// 调用有返回值方法。

2026-05-15 17:46:44 170

原创 VS code调试

VS Code 支持多种语言的调试,但需要安装相应的调试器扩展。右键点击断点 → 选择「编辑断点」→ 设置条件(如。),仅当条件满足时暂停。运行时在控制台输出日志。对于复杂项目,需配置。

2026-05-14 18:49:10 305

原创 Java初学基础

位运算符是直接对整数在内存中的二进制位进行操作的运算符。它们主要用于底层编程、硬件操作和性能优化场景。位运算虽然强大,但在现代编程中应谨慎使用,优先考虑代码可读性,除非确实需要性能优化或底层操作。练习是掌握的关键,多动手写代码吧。一个最简单的Java程序通常包含一个类定义和一个。在Java中,使用变量前需要。根据一个变量的不同取值执行不同分支。注释用于解释代码,不会被编译器执行。运算符用于对变量和值进行操作。用于比较两个值,返回布尔结果(根据条件决定执行哪段代码。用于基本的数学运算。用于组合布尔表达式。

2026-05-14 18:13:04 313

原创 C语言分支和循环语句

随机生成/非负数/Time函数/后面的函数先不用所以是NULL。continue跳过所有下面的,继续执行上面的。case和default顺序可以任意调换。

2026-04-16 23:54:04 56

空空如也

空空如也

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

TA关注的人

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