- 博客(46)
- 收藏
- 关注
原创 双指针day1
本文介绍了双指针算法的两种常见形式及其应用场景。对撞指针主要用于有序结构的两端逼近,快慢指针则适用于环形结构或循环问题。通过三个LeetCode题目展示了双指针的实际应用: 移动零:使用快慢指针将非零元素前移,零元素后移,保持相对顺序 复写零:先定位指针位置,再从后往前进行零的复制和元素移动 快乐数:利用快慢指针判断数字变换是否进入循环,包括1循环和非1循环 双指针算法能有效解决数组和链表中的位置操作问题,是一种高效的空间优化方法。
2025-10-30 08:49:11
546
原创 MySQL中的用户权限管理
本文介绍了MySQL数据库的用户管理和权限控制。主要内容包括:查看用户信息、创建/删除用户账号、修改用户密码等用户管理操作;以及MySQL内置权限列表和授权机制。文章详细说明了用户创建时的主机限制、密码策略、IP地址格式等注意事项,并通过具体SQL示例演示了各项操作。权限管理部分展示了权限与数据库对象的对应关系,为数据库管理员提供了用户权限控制的实用指南。 (字数:149字)
2025-10-30 08:44:58
969
原创 MySQL中事务
本文介绍了数据库事务的基本概念和ACID特性。事务是一组要么全部成功、要么全部失败的SQL语句,确保数据一致性。通过银行转账示例展示了事务的原子性、一致性、隔离性和持久性特性。文章详细说明了事务的开启、提交和回滚操作语法,并介绍了保存点功能,可以在事务执行过程中设置回滚点。最后解释了MySQL默认自动提交事务的特性,以及如何查看当前事务提交模式。事务机制简化了编程模型,确保数据在各种异常情况下的安全性和完整性。
2025-10-26 09:47:02
688
2
原创 MySQL视图详解
摘要 视图是数据库中基于基础表的虚拟表,通过查询动态生成数据而不占用物理存储空间。本文介绍了视图的创建、使用、修改和删除方法,展示了如何解决列名重复问题,并演示了视图与真实表的数据交互。视图具有简化复杂查询、提高数据安全性(如隐藏敏感字段)、实现逻辑数据独立性和重命名列等优点。同时指出了使用聚合函数、DISTINCT、GROUP BY等情况的视图不可更新的限制。通过示例说明了视图在实际应用中的价值和管理方式。
2025-10-26 09:45:03
412
原创 MySQL基础知识大全
本文总结了MySQL数据库的基本操作,包括客户端连接、数据库管理、表操作和CRUD增删改查等核心功能。重点介绍了查询操作的各种方式(全列查询、指定列查询、条件查询等)、数据库约束(非空、唯一、主键等)、表设计三大范式(不可再分、消除部分依赖、消除传递依赖)以及表连接查询(内连接、外连接、自连接)。还讲解了聚合函数、分组查询、子查询和合并查询的使用方法,并分析了SQL语句的执行顺序。这些内容涵盖了MySQL数据库操作的主要知识点,适合作为数据库入门及日常查询的参考指南。
2025-10-25 20:21:57
1580
原创 MySQL联合查询详解
联合查询是通过表连接操作将拆分后的数据表重新关联,以获取完整业务信息。主要包括内连接和外连接两种方式。内连接通过笛卡尔积生成结果集后,使用连接条件过滤无效数据,最终得到符合业务需求的查询结果。在实际应用中,需要确定参与查询的表、建立主外键关系、设置过滤条件,并精简查询字段。示例展示了如何通过内连接查询学生成绩和个人信息,体现了联合查询在消除数据表拆分影响、获取完整业务数据方面的重要作用。
2025-10-25 20:20:35
937
原创 MySQL索引详解
MySQL索引是一种高效查询数据的数据结构,类似于书籍目录。它通过特定规则组织数据,提升查询速度。MySQL主要采用B+树作为索引结构,因其支持范围查找、性能稳定且IO效率高。索引分为主键索引、普通索引、唯一索引等类型,其中聚集索引基于主键构建。InnoDB存储引擎使用16KB的页作为最小交互单元,通过页目录实现二分查找优化查询效率。非聚集索引查询需要回表,而索引覆盖可直接返回数据避免回表。合理使用索引能显著提升数据库性能。
2025-10-25 20:15:06
1059
原创 MySQL分组查询GROUP BY
摘要:GROUP BY子句用于对数据分组查询,SELECT中的字段必须是分组依据或聚合函数计算的结果。HAVING用于对分组结果筛选,与WHERE不同,它作用于分组后数据。ROUND()函数可对数值四舍五入到指定位数。多字段GROUP BY会按字段组合分组。SQL标准要求SELECT中的列必须出现在GROUP BY或聚合函数中,某些数据库(如MySQL)可能允许例外,但建议遵循标准以确保结果确定性。示例展示了如何按角色分组计算工资平均值并进行筛选。
2025-10-22 13:38:21
1033
原创 聚合查询详细介绍
本文介绍了MySQL中常用的聚合函数及其用法。主要包括COUNT()统计行数、SUM()求和、AVG()求平均值、MAX()/MIN()求最大值/最小值等函数。文章详细说明了各个函数的使用语法和注意事项,如COUNT(*)与COUNT(列名)的区别、聚合函数只能用于数值型数据、NULL值的处理规则等,并提供了具体示例帮助理解。这些聚合函数主要用于对数据表中的行间运算,是MySQL数据分析的重要工具。
2025-10-22 13:36:20
287
原创 MySQL表设计详解
数据库范式与关系模型设计摘要 数据库范式是关系数据库设计的规范要求,包括1NF(每列不可再分)、2NF(消除部分函数依赖)和3NF(消除传递依赖),通常满足第三范式即可。设计过程包括:从业务抽象概念类、绘制E-R图、创建数据库表。实体关系分为一对一、一对多和多对多三种,通过外键关联实现。关系模型设计应避免数据冗余和操作异常,合理拆分表结构以满足业务需求。
2025-10-18 22:20:37
1401
原创 MySQL中的约束详解
摘要:关系型数据库通过约束机制保证数据完整性。主要约束类型包括:NOT NULL(非空)、DEFAULT(默认值)、UNIQUE(唯一性)、PRIMARY KEY(主键,含自增特性)、FOREIGN KEY(外键关联)和CHECK(值范围校验)。其中,主键约束兼具非空和唯一特性,支持复合主键;外键要求关联主表的主键或唯一键;自增主键可能出现不连续现象。这些约束共同确保数据的正确性和关联关系的一致性,是数据库设计的重要基础。(150字)
2025-10-18 22:17:46
1003
原创 MySQL的CRUD
文章摘要 本文介绍了数据库CRUD操作基础,重点讲解了新增(Create)和查询(Retrieve)操作。新增部分包括单行全列插入、指定列插入和多行插入三种方式;查询部分涵盖全列查询、指定列查询、表达式查询、去重、排序和条件查询等内容。特别强调了全列查询的风险、NULL值的处理方式以及多字段排序规则。文章还提供了SQL示例和操作截图,帮助理解数据库基本操作原理。 (字数:150字)
2025-10-17 22:34:46
1250
2
原创 MySQL中表操作
这篇文章介绍了MySQL数据库表的基本操作,包括创建表、复制表结构、查看表和表结构、执行SQL文件、删除表等。详细讲解了创建表语法,通过商品表、客户表和购买记录表的实例演示了表设计方法。还介绍了使用命令行工具执行SQL文件的操作,以及如何查看当前数据库的所有表和表结构。最后总结了关键命令:show tables查看所有表、create table创建表、desc查看表结构、drop table删除表。文章提供了完整的SQL示例代码,适合初学者学习MySQL表操作的基础知识。
2025-10-17 22:15:03
753
原创 MySQL中的常用数据类型详解
本文系统介绍了SQL中常用的数据类型分类,包括数值类型、字符串类型和日期类型三大类。数值类型详细列出了BIT、TINYINT、INT、BIGINT等整数类型及FLOAT、DOUBLE、DECIMAL等浮点类型的存储大小和取值范围。字符串类型分析了CHAR、VARCHAR、TEXT等文本类型的区别及适用场景,特别比较了固定长度CHAR与可变长度VARCHAR的特性差异。日期类型则介绍了TIMESTAMP、DATETIME、DATE等时间类型的格式规范。文章还提供了数据类型选择建议,如定长与变长字符串的使用场景
2025-10-16 22:32:48
869
原创 数据库操作
MySQL数据库操作指南摘要:本文介绍了MySQL数据库的基本操作,包括SQL语言分类(DDL、DML、DCL)、数据库的创建与管理。主要内容有:1) 使用show databases查看所有数据库;2) create database创建数据库,可指定字符集和排序规则;3) 使用use选择数据库;4) drop database删除数据库;5) 退出MySQL的多种方式。文章还强调了操作时的注意事项,如使用if exists避免错误中断,处理关键字命名需用反引号等。这些基础操作命令是MySQL数据库管理的
2025-10-16 22:31:11
1197
原创 MySQL客服端工具
本文介绍了MySQL数据库的客户端工具及其连接方式。主要内容包括:1) 生产环境数据库通常部署在专用服务器上;2) 通过终端使用mysql.exe的配置方法,包括环境变量设置和常见错误;3) 图形化客户端工具如MySQL Workbench、Navicat等;4) 客户端与数据库服务器通过TCP/IP协议进行网络通信。文章提供了详细的配置步骤和操作截图,帮助用户选择适合的客户端工具并建立数据库连接。
2025-10-15 21:38:54
306
原创 MySQL的配置
本文介绍了MySQL配置文件的位置、内容及修改方法。配置文件位于隐藏的ProgramData文件夹中,MySQL启动时会读取该文件作为默认配置。配置文件包含[client]和[mysql]等节点,分别对应客户端和特定程序的设置。修改配置时建议备份原文件,可调整端口号、数据目录路径、字符集(建议从默认latin1改为utf8mb4)和排序规则等设置。修改后需重启MySQL服务使配置生效,若修改数据目录还需手动迁移Data文件夹。配置文件中以#开头的为注释内容。
2025-10-15 21:34:31
448
原创 Map与Set及相关OJ练习和源码简单分析
本文介绍了Java中Map和Set接口的使用方法。Map是存储键值对的接口类,键唯一不重复,常用方法包括get、put、remove等,实现类有TreeMap(有序)和HashMap(无序高效)。Set继承自Collection接口,只存储键元素,具有去重特性。文章详细比较了TreeMap和HashMap的底层结构、性能特点及适用场景,并列举了Map.Entry内部类的主要操作方法。使用时需注意键值对操作限制、空值处理等细节,为Java集合框架的应用提供了实用参考。
2025-10-01 16:33:00
956
原创 二叉搜索树
本文介绍了二叉搜索树(二叉排序树)的概念、基本操作及其实现。二叉搜索树具有左子树小于根节点、右子树大于根节点的特性。文章详细讲解了查找、插入和删除操作的实现逻辑,特别是删除操作需要分三种情况处理。代码展示了Java实现插入、查找和删除的方法。文章分析了二叉搜索树的性能,最优情况为O(logN),最差情况为O(N/2)。最后介绍了搜索数据结构Map和Set的概念及Key-Value模型的应用场景,如词典查询、通讯录等。
2025-10-01 16:28:07
618
原创 PriorityQueue优先级队列(堆)
本文介绍了优先级队列的概念及其实现方式。优先级队列是一种特殊的队列结构,允许高优先级元素优先出队。Java中的PriorityQueue底层采用堆数据结构实现,堆是一种完全二叉树,具有大根堆和小根堆两种形式。文章详细讲解了堆的存储方式、创建过程(包括向下调整算法)、插入删除操作,以及时间复杂度分析(建堆为O(n))。最后给出了用堆模拟实现优先级队列的代码示例,并介绍了Java标准库中的PriorityQueue特性,强调其存储元素必须具备可比较性。通过习题帮助理解堆的相关概念和应用。
2025-09-30 20:09:35
864
原创 排序介绍及实现
排序算法是计算机科学中的基本操作,主要分为插入排序、选择排序和交换排序三大类。插入排序包括直接插入排序和希尔排序,前者适用于接近有序的数据,后者通过分组预排序提升效率。选择排序包含直接选择排序和堆排序,后者利用堆结构实现高效排序。交换排序以冒泡排序为代表,通过相邻元素比较实现排序。这些算法的时间复杂度从O(n²)到O(nlogn)不等,空间复杂度多为O(1)。稳定性方面,直接插入排序和冒泡排序是稳定的,而希尔排序和堆排序不稳定。实际应用中需根据数据特点选择合适的排序算法。
2025-09-30 19:57:42
875
原创 Java对象比较
本文介绍了Java中不同类型元素的比较方法。第一部分对比了基本类型和对象的比较,指出引用类型不能直接使用>或<比较,而==默认比较的是对象地址。第二部分详细讲解了三种对象比较方式:1)覆写Object类的equals方法进行内容比较;2)实现Comparable接口并重写compareTo方法,支持大小比较;3)使用Comparator比较器接口,通过实现compare方法定义比较规则。文章最后总结了三种方式的区别:equals只能比较相等性,Comparable建立内部顺序,Comparato
2025-09-29 13:49:45
666
原创 反射与枚举
反射与枚举要点总结 反射优点:提供动态获取类和对象信息的能力,增强灵活性,被主流框架广泛使用;缺点:性能较低,代码复杂度高。 获取Class对象:三种方式:Class.forName()、.class语法、getClass()方法,每个类在JVM中只有一个Class实例。 反射应用:可创建对象、访问私有构造方法/属性/方法,需setAccessible(true)突破访问限制。 枚举特性:JDK1.5引入,本质是Enum子类,构造方法默认私有。枚举类自动生成values()方法,但反射无法获取枚举构造方法,
2025-09-29 13:48:46
859
原创 Spring常量池讲解
本文通过Java代码示例演示了字符串常量池的特性。使用双引号创建的字符串会存入常量池,相同内容的字符串会共享引用;而通过new创建的字符串会生成新对象。同时展示了intern()方法的作用:调用intern()会将字符串对象的引用存入常量池,后续相同内容的字符串将直接引用该对象。当对s1调用intern()后,s2创建时就会复用s1的引用,使得s1==s2结果为true。这些示例清晰说明了Java字符串常量池和intern()方法的工作原理。
2025-09-27 21:17:08
285
原创 二叉树及OJ详解
本文介绍了树型结构和二叉树的基本概念与应用。树是一种非线性数据结构,具有层次关系和递归特性,包含根节点、子节点、叶子节点等基本概念。二叉树是每个节点最多有两个子节点的树结构,分为满二叉树和完全二叉树两种特殊类型。文章详细讲解了二叉树的性质和存储方式(顺序存储和链式存储),并介绍了二叉树的遍历方法(前序、中序、后序和层序遍历),给出了相应的伪代码实现。最后指出二叉树在文件系统管理等方面的实际应用。
2025-09-27 21:14:38
996
原创 queue队列详解及oj练习
本文介绍了队列(Queue)的基本概念、实现方式及其应用。队列是一种先进先出(FIFO)的线性表,支持在队尾插入元素、队头删除元素的操作。文章详细讲解了Java中Queue接口的使用方法,包括offer、poll、peek等常用操作,并提供了队列的链表模拟实现代码。此外,还介绍了循环队列的实现原理和双端队列(Deque)的概念,最后列举了两道相关的面试题。队列作为基础数据结构,在操作系统和算法设计中都有广泛应用。
2025-09-23 12:29:59
513
原创 栈详解及oj练习
本文介绍了栈的基本概念、使用方法、模拟实现及应用场景。栈是一种遵循后进先出(LIFO)原则的线性表,只能在栈顶进行插入(push)和删除(pop)操作。文章详细展示了栈的常用方法(push、pop、peek等),并通过Java代码示例演示了栈的基本操作。同时提供了一个基于数组的栈模拟实现方案,包括动态扩容功能。最后列举了栈的典型应用场景:序列转换、递归转循环、括号匹配、逆波兰表达式求值以及出入栈次序匹配等实际问题,并附有相关算法实现代码。这些内容全面覆盖了栈的核心知识点和实际应用。
2025-09-23 12:26:05
1105
原创 LinkedList与链表
本文介绍了链表结构及其在Java中的应用。首先分析了ArrayList在插入删除操作上的缺陷,引出链表结构的优势。重点讲解了无头单向非循环链表和无头双向链表的实现原理,并提供了单链表的基本操作代码示例。文章还详细解析了8种常见链表面试题的解法,包括删除节点、反转链表、查找中间节点等。最后对比了LinkedList的实现特点和使用场景,说明其适合频繁插入删除操作的场景。通过代码示例展示了LinkedList的构造方法和常用API,为理解链表数据结构及其应用提供了全面指导。
2025-09-22 21:45:15
1214
1
原创 ArrayList和顺序表
本文介绍了Java中ArrayList的实现原理和使用方法。主要内容包括:1)ArrayList作为动态顺序表的实现机制,包括扩容策略(默认1.5倍扩容)和底层数组结构;2)ArrayList的三种构造方法和常用操作(增删改查、遍历等);3)实际应用案例:字符串字符过滤、杨辉三角生成和扑克牌洗牌算法实现。文章着重分析了ArrayList的扩容机制源码,并对比了不同遍历方式的效率,指出for循环+下标和foreach是最常用的遍历方式。通过具体代码示例展示了ArrayList在实际开发中的典型应用场景。
2025-09-22 21:43:00
769
原创 Ajax简单介绍及Axios请求方式的别名
介绍:Axios对原生的Ajax进行了封装,简化书写,快速开发。步骤:引入Axios的js文件使用Axios发送请求,并获取响应结果。
2025-07-20 14:55:11
457
原创 路由的概述
RouterLink :to="{name:'xinwen'}" active-class="active">新闻</RouterLink>//命名路由。<RouterLink :to="{path:'/about'}" active-class="active">关于</RouterLink><RouterLink to="/home" active-class="active">首页</RouterLink>//第一种写法:将路由收到的所有params参数作为props传给路由组件。
2025-07-18 21:23:09
719
原创 SpringBoot项目创建,三层架构,分成结构,IOC,DI相关,@Resource与@Autowired的区别
Spring官网:Spring | Home如果Spring官方脚手架创建失败可以使用阿里云URL地址创建。点击Sever URL后面的齿轮,输入https://start.aliyun.com要把某个对象交给IOC容器管理,需要在对应的类上加上如下注解之一:注意:申明bean时,可以通过注解的value属性指定bean的名字,如果没有指定,默认为类名首字母小写。基于@Autowired进行依赖注入的常见方式有如下三种:1.优点:代码简洁、方便快速开发缺点:隐藏了类之间的依赖关系、可能破坏类的封装性2.优点
2025-07-18 20:57:46
447
原创 Vue3中watch详解
Vue的watch用法总结 本文介绍了Vue中watch的几种使用场景: 监视ref定义的基本类型数据:直接写数据名,监视value值的改变 监视ref定义的对象类型数据:监视对象地址值变化,需手动开启深度监视才能监视内部属性 监视reactive定义的对象类型数据:默认开启深度监视且无法关闭 监视对象中某个属性:基本类型需写成函数形式,对象类型可直接写或写成函数式 监视多个数据:使用数组形式 使用watchEffect:自动追踪依赖,初始会执行一次,适合基于多个值的逻辑判断
2025-07-17 11:31:56
6075
原创 JavaScript介绍
JavaScript基础与DOM操作摘要 JavaScript核心内容包括:1)两种引入方式(内部脚本和外部脚本);2)基本语法(变量、常量、数据类型检测);3)函数定义(常规函数、匿名函数和箭头函数);4)对象操作(自定义对象和JSON);5)DOM编程(文档对象模型,通过querySelector等方法获取元素)。此外,事件监听采用addEventListener可避免覆盖。JS作为弱类型语言,函数参数灵活,支持模板字符串简化拼接,箭头函数需注意this指向。DOM将网页元素视为对象,通过操作对象属性和
2025-07-15 17:31:24
380
原创 图书管理系统设计
本文描述了一个基于Java的图书管理系统,主要包含用户注册、登录、身份验证和图书管理功能。系统分为管理员和普通用户两类角色:管理员可进行图书增删改查等操作,普通用户则可借阅和归还图书。通过IOperation接口实现不同功能的模块化,并使用自定义异常处理错误情况。核心类包括Main(主程序)、Book(图书信息)、BookList(书架管理)、User(用户基类)及各功能操作类。系统采用面向对象设计,通过菜单驱动交互,实现了基本的图书管理功能。
2025-05-28 01:03:56
607
原创 数组的定义和使用
数组:可以看成是相同类型的集合,在内存中是一段连续的空间。在Java中数组中存放元素其类型相同数组的空间是连在一起的每个空间都有自己的编号,起始位置的编号为0,即数组的下标。
2025-05-28 01:01:22
1192
原创 运算符中的注意事项
本文介绍了Java中的字符串拼接和各类运算符的使用。字符串可通过"+"拼接,String类型不以\0结尾;运算符包括算术、关系、逻辑、位运算等,其中逻辑运算符支持短路求值。位运算包括按位与、或、取反、异或及移位运算,移位运算可替代部分乘除操作以提高效率。条件运算符是唯一的三目运算符,用于简化条件判断。文中还强调了运算时的类型转换规则和常见错误用法,如连续关系判断需分开写、条件表达式结果需被使用等。
2025-05-28 00:58:55
614
空空如也
vs中打印1.5应该选择%f还是%e。
2024-08-16
初学者编程语言的选择?
2024-08-15
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅