自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 测试常用函数(下)

本文介绍了Selenium自动化测试中的核心操作技巧。主要内容包括:窗口操作方法(切换、大小设置、句柄复用);三种截图方式(基础与进阶);等待机制对比(强制/隐式/显示等待);浏览器导航控制;三类弹窗处理方案;文件上传实现;以及浏览器参数设置(无头模式、页面加载策略)。这些基础操作涵盖了自动化测试中常见的页面交互场景,掌握这些技能可以显著提升测试脚本的稳定性和效率。

2026-01-02 17:46:50 820 15

原创 测试常用函数(上)

本文介绍了Web自动化测试中的两种核心元素定位方法:CSS选择器和XPath。CSS选择器通过id、class等属性快速定位元素,适合简单场景;XPath则更灵活,支持复杂路径、属性匹配和文本查找。文章详细讲解了find_element和find_elements的使用场景,并以百度搜索和热搜为例进行演示。同时对比了两种定位方式的优劣,建议根据场景灵活选用。最后强调应优先选择稳定的元素特征进行定位,避免因页面结构变化导致脚本失效。

2025-12-31 21:55:55 962 8

原创 软件测试(概念)

摘要:软件需求是用户期望和业务目标的体现,分为用户需求(主观多样)和软件需求(规范可验证)。常见开发模型包括瀑布模型(线性流程)、螺旋模型(风险管理)、增量模型(模块化交付)和迭代模型(持续优化)。测试模型如V模型(开发测试对称)和W模型(全程并行测试)强调早期介入,但灵活性不足。敏捷开发则更注重快速响应变化。核心观点:测试应贯穿开发全过程,不同项目需选择合适的开发与测试模型,以平衡效率与质量。

2025-12-27 21:20:22 735 13

原创 MySQL -复合查询

本文系统介绍了MySQL复合查询的核心操作,从单表基础查询到多表关联查询,再到子查询和合并查询。首先回顾了单表查询中的条件筛选、排序计算和聚合分组等基础操作;然后讲解了多表联查(包括三表联查)和自连接的实现方法;接着详细阐述了子查询的多种应用场景,包括单行、多行子查询和FROM子句中的临时表用法;最后介绍了UNION和UNION ALL合并查询的区别。所有示例均基于经典的员工管理系统(EMP、DEPT、SALGRADE表),配有真实查询结果,建议读者通过实践来掌握这些查询技巧。

2025-12-24 21:55:42 1554 14

原创 MYSQL-内外连接

SQL表连接详解:内连接与外连接对比 本文系统介绍了SQL中三种常用表连接方式。内连接(Inner Join)只保留两表匹配的数据,适合查询"双方都存在"的关联信息。外连接分为左外连接(Left Join)和右外连接(Right Join),前者保留左表全部数据,后者保留右表全部数据,适用于需要确保主表或关联表数据完整显示的场景。文章通过员工-部门、学生-成绩等实际案例,展示了不同连接方式的语法格式和查询结果差异,帮助SQL新手快速掌握表连接的核心逻辑和应用场景。

2025-12-24 17:51:45 1029 8

原创 Redis背景知识

本文详解 Redis:它是基于内存的键值对 NoSQL 数据库,由开发者为优化网站自研并开源,现成为后端必备工具。其核心特性包括支持多数据结构(如哈希、有序集合)、内置键过期 / 发布订阅等功能、通过持久化防数据丢失,还能以集群 + 主从复制支撑分布式系统。Redis 的 “快” 源于内存存储(比硬盘快 10 万倍)、逻辑极简、IO 多路复用 + 单线程模型降开销。实战中可做热点缓存(提速系统)、分布式 Session(解登录串号)、轻量消息队列(解耦削峰)、实时数据处理,但不适合存大规模 / 冷数据(内

2025-12-21 22:35:19 774 9

原创 MySQL-基础查询(下)

本文介绍了MySQL数据库操作的进阶技巧,主要包括:1)数据更新(Update)的灵活用法,包括单/多字段更新和基于原数据的运算;2)数据删除操作对比(Delete支持条件删除和事务回滚,Truncate全表删除更快但不可回滚);3)插入查询结果实现数据去重的方法;4)常用聚合函数(Count/Sum/Avg/Max/Min)的统计应用;5)分组查询(Group By)与结果筛选(Having)的使用技巧。文章通过具体SQL示例演示了各项操作,并总结了关键区别和注意事项,为数据库管理提供了实用参考。

2025-12-21 21:53:01 785 5

原创 MySQL-基础查询(上)

本文详细介绍了MySQL基础操作,包括创建表、插入数据和查询操作。主要内容涵盖:1. 表创建与数据插入(单行/多行/冲突处理);2. 基础查询(全表/指定列/表达式/别名);3. 去重查询和条件筛选(比较/逻辑运算符);4. 结果排序和分页查询。文章通过"学生信息+考试成绩"案例,提供完整可执行的SQL示例,帮助开发者掌握MySQL的CRUD操作核心语法。特别强调查询语法顺序:select→from→where→orderby→limit,并指出生产环境中应避免使用全表查询(*)。

2025-12-21 21:43:20 859 3

原创 从 Redis 到分布式架构

本文分享了Redis核心原理与分布式架构设计的实践经验。首先解析Redis高性能的底层逻辑,包括单线程模型、高效数据结构和IO多路复用机制。重点总结了缓存穿透、击穿、雪崩三大问题的解决方案,以及Redis集群的分片与主从同步机制。在分布式架构方面,分析了垂直与水平拆分的策略,并探讨了数据一致性、服务可用性和分布式锁等核心问题。最后强调架构设计需要权衡成本与性能,指出技术方案的本质是解决性能、可用性和扩展性问题。文章为开发者提供了从单机到分布式系统演进的实用指南。

2025-12-20 22:00:15 1088 4

原创 每日一题(一)

本文分享了5道LeetCode中等难度高频面试题的解法与核心思路:1)轮转数组的三次反转法;2)跳跃游戏的贪心算法;3)除自身外数组乘积的左右前缀积法;4)环形链表入环点的快慢指针法;5)字符串匹配的KMP算法。这些题目考察数组操作、链表遍历、字符串匹配等常见算法,通过典型解法如反转、贪心、双指针等技巧,可以在O(n)时间复杂度内高效解决问题,是面试必备的算法基础。

2025-12-12 23:03:21 753 14

原创 MySQL 数据类型

MySQL 数据类型

2025-12-10 22:42:48 932 7

原创 Qt 实战-Music 播放器

本文介绍了基于Qt框架开发的QQMusic音乐播放器项目。该项目采用模块化分层设计,包含界面层、控件层、业务层和数据层,实现了本地音乐加载、播放控制、歌词同步和数据持久化等核心功能。关键技术包括Qt Designer界面设计、QSS样式优化、QMediaPlayer媒体播放、SQLite数据存储等。项目亮点在于自定义控件开发、模块化架构设计和完整业务闭环实现。通过该项目可以掌握Qt的核心开发技能,包括信号槽机制、动画效果、文件IO操作等,是Qt进阶学习的优质实践案例。

2025-12-09 23:23:08 693 5

原创 QT-项目(音乐)(二)

本文介绍了Qt界面开发中动态交互效果的实现方法。通过QPropertyAnimation创建线条呼吸动画,结合信号槽机制管理按钮状态,实现流畅的界面切换效果。主要内容包括:1)使用几何属性动画实现按钮组动态线条效果;2)封装按钮控件统一管理图标、文本和状态;3)通过stackedWidget和信号槽实现多页面切换;4)设计带滑动效果的推荐内容展示区布局方案。文章重点阐述了动画实现原理、界面状态管理和交互设计要点,为开发具有良好用户体验的界面提供了实用解决方案。

2025-11-28 01:40:54 575 8

原创 QT-项目(音乐)(一)

本文介绍了Qt界面开发中的两个关键操作:1)去除原生窗口边框并解决不可关闭/拖动问题:通过setWindowFlag实现无边框,重写鼠标事件实现拖拽功能,添加关闭按钮事件;2)界面美化技巧:使用QGraphicsDropShadowEffect设置阴影效果,结合半透明背景实现立体视觉。同时详细解析了logo和输入框的样式设置方法,包括背景图居中显示、圆角输入框等CSS样式实现。这些方法可帮助开发者打造更美观、交互友好的Qt自定义界面。

2025-11-26 21:24:04 1016 8

原创 QT-界面优化(下)

本文介绍了Qt绘图API的核心使用方法和实践技巧。主要内容包括:1)Qt绘图体系四大核心类(QPainter、QPaintDevice、QPen、QBrush)的功能分工;2)正确的绘图时机应在paintEvent事件中;3)图形绘制基础(线段、矩形、椭圆);4)样式定制(画笔样式、填充效果);5)文字绘制注意事项;6)图片显示与处理(原始显示、缩放、旋转)。文章通过代码示例详细演示了各项功能的具体实现,为开发者提供Qt绘图开发的实用指南。

2025-11-25 21:51:37 1513 10

原创 QT-界面优化(中)

本文解析了QSS盒模型的核心概念及其在Qt控件样式定制中的应用。盒模型将控件分为外边距、边框、内边距和内容区四个层次,通过margin、padding、border等属性可精准控制控件布局。文章详细介绍了复合属性的拆分与简写规则,并以按钮样式为例展示实际应用。此外,还讲解了如何通过子控件选择器和伪类定制复选框、输入框等控件的细节样式,以及使用qlineargradient实现渐变效果。针对QWidget背景失效问题,提出通过嵌套QFrame控件的解决方案,有效实现窗口背景美化。掌握这些QSS技巧可以显著提升

2025-11-25 16:52:19 649 5

原创 QT-界面优化(上)

本文系统介绍了Qt样式表(QSS)的核心知识点,包括语法结构、使用方式和层叠特性。QSS沿用了CSS的语法,通过选择器和属性键值对实现控件样式定制。文章详细讲解了三种使用方式:控件级局部样式、父控件级包含子控件的样式以及全局样式,并分析了样式叠加和覆盖的层叠规则。此外,还提出了QSS工程化管理的两种方案:将样式代码分离到独立文件和在QtDesigner中直接编辑样式,解决了样式与逻辑混编的问题。最后,文章深入解析了QSS选择器类型及其优先级规则,包括基础选择器、子控件选择器和伪类选择器等,帮助开发者精准控制

2025-11-24 23:10:03 1136 5

原创 C++11

C++11新特性解析:提升编程效率与性能 本文系统介绍了C++11标准引入的关键新特性。主要内容包括:统一的列表初始化({}初始化与initializer_list)、变量类型推导(auto/decltype/nullptr)、右值引用与移动语义、lambda表达式、可变参数模板、类功能增强(默认成员函数/成员初始化/default&delete/final&override)以及包装器(function/bind)。这些特性显著提升了代码简洁性、运行效率和灵活性,并通过逆波兰表达式求值案例

2025-11-23 23:00:02 1152 8

原创 QT-系统(网络)

本文系统介绍了Qt框架下UDP、TCP和HTTP三种网络协议的编程实现方法。在UDP部分,详细解析了QUdpSocket和QNetworkDatagram类的使用,并实现了带界面的回显服务器;TCP部分重点讲解了QTcpServer和QTcpSocket的应用,解决了粘包问题;HTTP部分则通过QNetworkAccessManager等类实现了可视化客户端。文章还简要介绍了Qt多媒体模块的声音播放功能。每种协议都包含核心类解析、实战代码示例和实际应用场景分析,展示了Qt在网络编程中的跨平台优势和信号槽机制

2025-11-23 15:35:39 899 9

原创 特殊类的设计

本文探讨了C++中特殊类的设计技巧,包括控制对象创建方式(仅堆/仅栈实例化)、限制类行为(禁止拷贝、不可继承)和实现单例模式(饿汉/懒汉)。通过构造函数私有化、运算符禁用和静态成员函数等方法,可以精准控制对象创建位置和类行为。单例模式采用饿汉式(线程安全)或懒汉式(双检查锁优化)实现全局唯一实例。这些技巧能有效提升代码的健壮性和设计合理性,在框架开发和资源管控等场景中具有重要应用价值。

2025-11-21 21:36:33 669 7

原创 QT-系统(多线程)

本文系统介绍了Qt多线程开发的核心技术与实践方案。首先对比了Linux原生API、std::thread和QThread三种多线程实现方式,重点剖析了QThread基于子类化和run函数重写的工作原理,并通过倒计时案例演示了线程与主线程的信号槽联动机制。针对客户端开发场景,阐述了多线程避免主线程阻塞的核心价值,特别强调了密集IO操作的处理策略。在线程安全方面,详细讲解了QMutex的基础用法及常见陷阱,推荐使用QMutexLocker的RAII机制确保锁安全释放,并介绍了QReadWriteLock在多读少

2025-11-21 21:31:23 1101 5

原创 QT-系统(文件)

QT系统部分得文件操作简介

2025-11-19 18:11:06 1178 11

原创 热题100-95

本文介绍了字符串处理中的经典问题——编辑距离,通过动态规划方法求解将一个字符串转换成另一个字符串所需的最少操作次数(插入、删除或替换)。文章详细阐述了状态定义、初始状态和状态转移方程,当字符相等时继承前状态,不等时取三种操作的最小值。给出了C++代码实现,分析时间复杂度为O(n×m),空间复杂度为O(n×m),并通过示例验证了算法正确性。该方法逻辑清晰,能高效处理字符串转换问题。

2025-11-19 15:40:59 316 1

原创 QT-系统部分(事件)

Qt事件处理机制详解:从底层事件到高层封装 摘要: 本文系统介绍了Qt的事件处理机制,重点对比了底层事件处理与高层封装的特点。Qt通过封装系统API实现跨平台能力,其事件处理分为两类:1) 底层事件如鼠标、键盘、定时器事件,通过重写event函数实现精确控制;2) 高层封装如信号槽和QShortcut,提供更简洁的开发方式。在定时器实现上,详细对比了timerEvent与QTimer的适用场景,建议优先使用QTimer。文章还包含窗口移动、大小改变等事件处理示例,展示了Qt事件系统既灵活又高效的特性,开发者

2025-11-18 21:55:32 1171 2

原创 高级IO-poll

本文深入剖析了poll机制在网络编程中的实现原理和优势。作为select的改进版,poll通过struct pollfd结构体数组解决了select的fd数量限制和事件集重复初始化问题。文章详细介绍了poll的核心数据结构、函数原型,并通过一个完整的TCP服务器实现展示了poll的实际应用。相比select,poll具有输入输出分离、无需计算maxfd等优势,但仍存在遍历开销和数据拷贝问题。poll适用于中小并发场景,而高并发场景需要更高效的epoll等技术。理解poll的设计思路是掌握多路复用技术演进的关

2025-11-15 22:56:58 862 13

原创 QT-窗口-内置对话框(下)

本文介绍了Qt中的5个常用对话框组件:1. QMessageBox - 用于消息提示和用户决策,支持标准按钮和自定义交互 2. QColorDialog - 提供颜色选择功能,可应用于界面样式设置 3. QFileDialog - 实现文件打开/保存路径选择,支持单文件和多文件选择 4. QFontDialog - 用于字体样式选择,可获取字体家族、大小等属性 5. QInputDialog - 提供多种输入方式(整数、浮点数、字符串、列表选择) 这些对话框都采用模态交互方式,简化了用户输入流程,开发者只需

2025-11-09 16:35:55 1005 19

原创 LRU 缓存的设计与实现

本文详细讲解了LRU(最近最少使用)缓存的设计与实现。LRU缓存通过结合哈希表和双向链表,实现了O(1)时间复杂度的get和put操作:哈希表快速定位键值,双向链表维护使用顺序。当容量满时,链表尾部的最久未使用项会被淘汰。文章从需求分析、数据结构选择、核心方法实现到完整代码测试,系统性地阐述了LRU缓存的工作原理,为理解这种经典缓存淘汰策略提供了清晰的实现思路。

2025-11-08 21:57:10 863 7

原创 Qt窗口教程(上)

本文介绍了Qt界面开发中常见组件的使用方法。主要内容包括:1. QMenuBar菜单栏的创建与优化,包含添加快捷键、子菜单、分割线和图标;2. QToolBar工具栏的使用及与菜单栏的核心区别;3. QStatusBar状态栏的基本操作和临时消息显示;4. QDockWidget浮动窗口的创建、停靠设置和内部控件布局管理;5. QDialog对话框的基础使用、内存管理方案以及模态/非模态实现。文章重点讲解了各组件在实际开发中的正确使用方式,并特别强调了内存管理问题,提供了Qt::WA_DeleteOnClo

2025-11-07 10:54:24 801 9

原创 数独系列算法

本文探讨了数独问题的两种核心算法:验证数独有效性和求解数独。验证数独有效性采用哈希表技术,通过三个数组记录行、列和3×3子网格的数字分布,实现O(1)时间复杂度的快速验证。解数独则运用回溯算法,在满足数独规则的前提下尝试填充数字,通过DFS递归和剪枝策略有效降低复杂度。两种算法分别体现了约束验证和搜索优化的经典思想,其方法论可推广至八皇后等约束满足问题。文章详细解析了两种算法的实现逻辑、复杂度分析和应用场景差异,为处理类似问题提供了算法范式。

2025-11-02 16:38:16 1152 11

原创 数据结构之图的邻接矩阵

本文系统解析了邻接矩阵这一基础图存储结构。通过泛型类实现,详细阐述了其核心原理:顶点存储映射、边权矩阵表示及有向/无向图的控制机制。文章对比了邻接矩阵与邻接表的特性差异,指出矩阵O(1)查询优势和O(n²)空间局限,并通过社交关系图等案例演示具体应用。最后强调根据图密度选择存储方式:稠密图适用矩阵,稀疏图推荐邻接表。该内容为学习图遍历、最短路径等算法奠定重要基础。

2025-11-01 22:09:45 965 10

原创 数据结构-并查集

本文深入解析并查集数据结构,介绍其通过树形结构管理不相交集合的核心原理,包括查找(带路径压缩)、合并(按大小合并)和统计集合数量三大操作。文章展示了并查集的通用类实现,并通过省份数量计算、等式方程判断等算法案例演示其应用。此外,还列举了在图连通性、网络分析、生物信息等领域的拓展应用。并查集以近乎常数级的时间复杂度,成为解决集合管理类问题的高效方案,既适用于算法竞赛,也能培养抽象建模能力。

2025-10-26 22:08:59 870 23

原创 Linux 信号控制

是进程 “主动控制哪些信号可以打扰自己” 的工具;sigpending是进程 “查看有哪些被屏蔽的信号在排队等待处理” 的窗口;信号屏蔽与未决机制,是 Linux 系统中进程对信号 “精细管控” 的核心手段,在系统编程、服务器开发等场景中有着广泛应用。希望这篇博客能帮大家穿透代码,真正理解信号屏蔽与未决的底层逻辑~

2025-10-22 10:42:26 806 15

原创 理解 Linux 进程间通信(IPC)

本文介绍了Linux系统中的进程间通信(IPC)机制,重点解析了SystemV IPC的三种核心方式:共享内存提供最高效的数据共享但需配合信号量保持同步;消息队列实现可靠的异步通信,适合解耦进程;信号量作为"红绿灯"控制进程同步与互斥。文章对比了各类IPC的适用场景,强调资源管理的重要性,并给出实践建议。掌握这些IPC技术能帮助开发者构建高效可靠的多进程应用系统。

2025-10-21 14:39:45 713 7

原创 Linux通信-管道

本文深入解析Linux进程间通信(IPC)的核心机制——管道(Pipe),从内核数据结构、系统调用实现、进程管理到实战应用四个维度展开。首先剖析了struct file、task_struct等关键数据结构如何支撑管道通信,详细介绍了pipe()系统调用的工作原理及其缓冲区管理机制。通过父子进程通信的代码示例,演示了匿名管道的典型应用场景,并分析了其局限性(如仅支持亲缘关系进程、单向通信等)。文章进一步探讨了命名管道(FIFO)等优化方案,并展示了管道在进程池实现中的进阶用法,通过父进程分发任务、子进程执行

2025-10-19 20:32:39 1112 13

原创 QT-常用控件

本文介绍了Qt框架中各类控件的核心属性与使用方法,涵盖基础控件、输入输出、布局管理等多个方面。主要内容包括:1)基础控件如QPushButton、QLabel等的属性和信号槽机制;2)输入类控件如QLineEdit、QTextEdit的文本处理功能;3)显示类控件如QProgressBar、QLCDNumber的数据展示方式;4)布局管理类如QVBoxLayout、QGridLayout的界面组织方法;5)特殊控件如QCalendarWidget的日期处理,以及QDateTimeEdit在跨时区计算中的注意

2025-10-18 15:29:23 1141 9

原创 刷题笔记:从全排列到二叉树

本文总结了回溯算法和二叉搜索树(BST)相关的经典LeetCode题目解题思路。全排列(LeetCode46)通过回溯法删除已选元素避免重复;验证BST(LeetCode98)利用中序遍历的严格递增特性;BST中第K小元素(LeetCode230)同样基于中序遍历计数;二叉树所有路径(LeetCode257)采用回溯法记录路径,遇到叶子节点保存结果。这些题目展示了算法思想的复用性:回溯法适用于排列组合和路径问题,中序遍历则能有效处理BST的特性问题。解题关键在于理解算法核心逻辑而非死记代码,才能在遇到新问题

2025-10-15 15:29:41 617 6

原创 QT-信号与槽

本文介绍了Linux信号与Qt信号的基础概念及差异,重点阐述了Qt中connect函数的使用方法和技巧。文章通过关闭小窗口的示例演示了信号与槽的连接方式,讨论了自定义槽函数的两种实现方法,并详细说明了自定义信号的声明和使用规则。文中还探讨了带参数信号和槽函数的匹配规则,解释了参数个数可以不同的原因。最后总结了信号和槽机制的意义,包括解耦和多对多操作特性,以及disconnect函数的使用场景。文章为Qt开发者提供了信号与槽机制的实用指南。

2025-10-05 21:11:37 1371 12

原创 Leetcode刷题

本文总结了三个经典算法问题的解法:1. 环形链表问题(141/142题)使用快慢指针判断环及入环点;2. 字符串处理问题(942/409题)通过双指针和字符统计解决匹配与回文构造;3. 数组贪心问题(870题)利用排序和双指针实现优势最大化。这些解法涵盖了快慢指针、贪心算法和哈希统计等核心算法思想,展示了不同数据结构的处理技巧,为算法学习提供了典型范例。

2025-10-05 17:07:40 720 7

原创 Leetcode热题100(8-12)

本文精选LeetCode经典题目,深入解析滑动窗口、哈希表、优先队列等核心算法技术。通过最小覆盖子串、字母异位词、子数组和等问题,详细剖析解题思路与代码实现,包括双指针控制、哈希表优化、前缀和技巧等关键点。特别针对滑动窗口最大值问题,比较了优先队列与单调队列的优劣。文章还涉及无重复字符子串等典型例题,并强调算法思维与C++工程实践的结合,为算法进阶提供系统指导。

2025-10-02 23:09:24 1102 9

原创 LeetCode热题100(1-7)

本文分享了LeetCode中数组操作、查找与哈希、数组进阶等经典题目的解题思路和C++实现。重点介绍了双指针法(移动零、盛水容器、接雨水)、哈希表(两数之和、字母异位词分组)和排序技巧(三数之和、最长连续序列)的应用。通过分析这些题目,总结出常见算法思维:双指针处理数组问题、哈希表优化查找效率、排序解决重复和连续性问题、原地操作降低空间复杂度。文章旨在帮助算法爱好者掌握核心解题技巧,提升编程能力。

2025-09-30 21:14:16 1250 12

空空如也

空空如也

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

TA关注的人

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