自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 MySQL:表的约束

本文介绍了数据库中的约束类型及其应用场景。主要包括空属性、默认值、列描述、zerofill、主键、自增长、唯一键和外键等约束类型,通过具体示例说明其作用和实现方式。特别强调了主键和唯一键的区别,外键约束的重要性,以及如何通过约束保证数据完整性和业务逻辑合理性。最后通过一个综合示例展示了如何在实际业务场景中应用这些约束来设计商品、客户和购买三个关联表,确保数据的一致性和有效性。文章着重说明了约束在数据库设计中的关键作用,以及如何通过合理设置约束来避免数据异常和业务逻辑错误。

2025-10-20 16:28:43 673

原创 MySQL:数据类型

本文系统介绍了MySQL中的数据类型分类和使用规范。数值类型部分详细讲解了tinyint、bit、float、decimal等类型的语法特点、取值范围和注意事项,强调应根据实际需求选择合适的数据类型。字符串类型对比了char和varchar的存储机制、最大长度限制及适用场景。日期时间类型介绍了date、datetime、timestamp的使用方法。最后阐述了枚举(enum)和集合(set)类型的特性及查询技巧,特别指出集合查询应使用find_in_set函数。

2025-10-18 14:00:00 982

原创 MySQL:表的增删查改

本文介绍了MySQL数据库表的基本操作:1. 创建表语法:指定表名、字段、数据类型、字符集和存储引擎,示例创建了users表;2. 查看表结构使用desc命令;3. 修改表操作包括添加/修改/删除字段、修改表名和字段名等;4. 删除表使用drop table命令。文中通过具体示例演示了各项操作,并指出不同存储引擎会生成不同的表文件,同时强调了删除字段时的数据风险。

2025-10-18 08:30:00 1140

原创 MySql:库的操作

本文介绍了MySQL数据库的基本操作,包括创建数据库(可指定字符集和校验规则)、查看系统默认字符集与校验规则、校验规则对查询结果的影响(区分大小写)。同时讲解了数据库的修改、删除、备份与恢复操作,以及查看连接情况的方法。重点说明了不同备份方式的语法差异,并提醒谨慎执行删除操作。文章还强调了校验规则在查询和排序时对大小写敏感性的影响。

2025-10-17 19:00:00 932

原创 Centos 7 环境下mysql的安装及配置

本文介绍了MySQL服务的检查、安装及配置步骤。首先通过命令检查并停止现有MySQL/MariaDB服务,删除旧安装包。随后从官方获取yum源进行安装,可能需处理密钥问题。安装后启动mysqld服务,提供三种登录方式:使用临时密码、无密码直接登录,或通过修改my.cnf配置文件添加skip-grant-tables实现免密登录。最后需重启服务使配置生效。全文涵盖了从环境检查到服务配置的完整流程,适用于Linux系统下的MySQL安装部署。

2025-10-17 13:19:04 489

原创 Qt:界面优化

Qt通过引入QSS(类似CSS的样式表)和QML来增强GUI开发能力,支持控件样式定制和界面描述。QSS语法与CSS类似但更简单,支持多种选择器(如类选择器、ID选择器)和子控件选择器,并允许通过伪类选择器设置控件状态样式。QSS优先级高于代码设置的样式。Qt还提供绘图API(如QPainter、QPaintDevice)用于自定义控件绘制,需在paintEvent事件中调用以确保动态更新。这些特性使Qt在界面开发中兼具灵活性和易用性。

2025-10-15 14:00:00 2180

原创 Qt:网络

摘要:本文介绍了Qt框架中网络编程的核心API及使用方法。主要内容包括:1)UDP通信相关类QUdpSocket和QNetworkDatagram的核心方法及对应原生API;2)TCP通信关键类QTcpServer和QTcpSocket的功能说明;3)HTTP客户端开发涉及的QNetworkAccessManager、QNetworkRequest和QNetworkReply类及其用法。文章通过回显服务器/客户端示例展示了这些API的实际应用,并对比了Qt封装接口与原生网络编程API的异同。

2025-10-15 08:00:00 1914

原创 Qt:多线程

Qt多线程编程指南 本文介绍了Qt框架中的多线程实现方法。主要内容包括:1)使用QThread类创建线程,通过重写run()函数实现线程逻辑;2)QThread常用API如start()、sleep()、wait()等;3)线程间通信方式,重点讲解了connect()函数的五种连接类型;4)线程安全机制,包括互斥锁(QMutex)、条件变量(QWaitCondition)和信号量(QSemaphore)的使用方法。文章特别强调UI操作必须在主线程执行,并详细说明了各种同步机制的应用场景和注意事项。

2025-10-14 14:00:00 2128

原创 Qt:文件操作

Qt提供了丰富的文件操作类,主要包括QFile用于文件读写,QSaveFile保证安全写入,QTemporaryFile创建临时文件。所有I/O设备类继承自QIODevice基类,包括网络通信(QTcpSocket/QUdpSocket)、串口(QSerialPort)和蓝牙(QBluetoothSocket)等。文件操作需通过open()设置模式(如ReadOnly/WriteOnly),使用read()/write()读写数据后必须close()。QFileInfo类可获取文件信息如大小、时间等。

2025-10-14 08:30:00 759

原创 Qt:事件

本文介绍了Qt中的事件处理机制,主要包括:1.事件是信号槽的底层实现基础,所有Qt事件都继承自QEvent类;2.常见的鼠标事件(进入/离开、按下/释放、双击、移动、滚轮)及其处理方法;3.键盘事件处理及修改键的使用;4.定时器事件的两种实现方式(QTimerEvent和QTimer类);5.窗口事件处理。文章通过具体示例说明了各类事件的处理步骤和应用场景,为Qt事件编程提供了实用指导。

2025-10-13 14:45:00 1644

原创 Qt:窗口类

本文介绍了Qt框架中的主要窗口类及其组件。QMainWindow作为主窗口类,包含菜单栏(QMenuBar)、工具栏(QToolBar)、状态栏(QStatusBar)、浮动窗口(QDockWidget)和中心部件等核心组件。QDialog对话框类用于实现短期交互任务,包括文件对话框(QFileDialog)、颜色对话框(QColorDialog)、字体对话框(QFontDialog)等标准对话框类型。文章详细说明了各类组件的功能特点、常用方法及典型应用场景,为Qt应用程序的界面开发提供了基础指导。

2025-10-13 08:15:00 1081

原创 Qt:容器类和布局管理器

本文介绍了Qt中常用的容器类控件和布局管理器。容器类控件包括QGroupBox(分组框)和QTabWidget(标签页),前者用于分组显示控件,后者支持多页面切换。布局管理器包括QVBoxLayout(垂直布局)、QHBoxLayout(水平布局)、QGridLayout(网格布局)和QFormLayout(表单布局),用于实现灵活的界面布局,解决绝对定位的局限性。每种布局管理器都支持边距、间距等属性设置,并能嵌套使用。QGridLayout还支持行列拉伸系数,而QFormLayout专为表单设计。

2025-10-12 14:00:00 993

原创 Qt:多元素控件

本文介绍了Qt中的多元素控件,包括QListWidget、QTableView、QTableWidget和QTreeWidget等。重点分析了Widget和View控件的区别,如QTableWidget封装了Model而QTableView需要手动关联Model。详细说明了各控件的核心属性、方法和信号,如QListWidget的currentRow属性、QTableWidget的cellClicked信号等。

2025-10-12 08:00:00 942

原创 Qt:输入类控件

摘要:本文介绍了Qt框架中常用的几种输入控件及其核心功能。QLineEdit用于单行文本输入,支持密码模式、输入格式约束等;QTextEdit是多行富文本编辑器,支持Markdown和HTML格式;QComboBox提供下拉选择功能,支持动态添加选项;QSpinBox/QDoubleSpinBox用于数值调节;QDateTimeEdit处理日期时间输入;QDial和QSlider分别是旋钮和滑动条控件,用于数值调节。每种控件都详细说明了核心属性、信号事件及典型应用场景,如密码输入验证、日期计算器、窗口透明度

2025-10-11 13:30:00 878

原创 Qt:显示类控件

本文介绍了Qt中几个常用控件的核心属性和功能:1. QLabel控件支持文本、图片显示,可设置文本格式、对齐方式、边距等属性,并能关联伙伴控件;2. QFrame作为QLabel的父类,可设置多种边框样式;3. QLCDNumber专门用于数字显示,支持多种进制和显示风格;4. QProgressBar用于显示进度条,可设置数值范围、方向、文本格式等;5. QCalendarWidget提供日历功能,可配置日期范围、显示格式等,并支持日期选择相关信号。这些控件都具备丰富的可定制属性,能满足不同界面开发需求。

2025-10-11 08:30:00 613

原创 Qt关于按钮相关类介绍

本文介绍了Qt中三种常见按钮控件的主要特性:1. QPushButton作为最常用的按钮控件,继承自QAbstractButton,支持文本、图标、快捷键设置,并具有自动重复触发功能;2. QRadioButton用于单选场景,默认具有排他性,可通过QButtonGroup实现分组;3. QCheckBox支持多选功能,核心属性checkable和checked继承自QAbstractButton。文章重点分析了各控件的特有属性及继承关系,并通过示例说明了QPushButton的图标、快捷键和自动重复等功能

2025-10-10 14:00:00 480

原创 应用层:五种IO模型

本文介绍了五种I/O模型:阻塞I/O(系统调用等待数据)、非阻塞I/O(循环轮询)、信号驱动I/O(内核信号通知)、多路复用I/O(同时监控多个文件描述符)和异步I/O(内核完成拷贝后通知)。重点分析了多路复用技术,包括select(存在效率问题)、poll(改进select但仍有遍历开销)和epoll(高效的事件驱动机制)。epoll支持边缘触发和水平触发模式,通过事件回调机制提升性能。最后提及Reactor模式,包括单进程版和多线程epoll版本,展示了I/O多路复用的实际应用框架。

2025-10-10 08:30:00 1063

原创 数据链路层:以太网、ARP协议

数据链路层是确保网络通信​​可靠、高效​​的关键。它将不稳定的物理传输转化为一条相对可靠的数据链路,为上层网络协议提供了“一站直达”的本地传输服务。没有数据链路层对帧、地址、差错和访问的控制,IP数据包将无法在本地网络中被正确投递,整个互联网的通信也就无从谈起。

2025-10-09 14:30:00 862

原创 网络层:IP协议

本文系统介绍了IP协议及其相关技术。首先明确了主机、路由器和节点的概念,详细解析了IP协议报头结构。重点阐述了IP地址的网段划分原理,包括网络号和主机号的作用,并介绍了CIDR子网划分方案以解决传统分类地址的浪费问题。同时说明了私有IP与公网IP的区别,以及NAT技术在局域网与公网通信中的关键作用。最后讲解了路由器的子网构建功能和IP数据包的分片组装机制。全文从基础概念到实际应用,全面展现了IP协议在网络通信中的核心地位与实现原理。

2025-10-09 08:30:00 1165

原创 Linux环境基础开发工具

本文摘要介绍了Linux系统下的常用开发工具和命令:1) yum包管理器的核心功能(仓库管理、依赖解析)及常用指令;2) lrzsz文件传输工具;3) vim编辑器的批量注释和配置方法;4) gcc/g++编译器的编译过程及选项;5) makefile文件管理;6) gdb调试器常用命令,包括断点设置、变量查看、流程控制等20余项调试技巧。这些工具涵盖了Linux环境下的软件安装、代码编辑、编译构建和调试等完整开发流程。

2025-10-08 16:49:05 314

原创 传输层:TCP协议

本文摘要:TCP协议通过接收/发送缓冲区、确认应答、超时重传等机制实现可靠传输。关键点包括:TCP报文格式(首部长度、窗口字段)、6种标记位(SYN/ACK等)、可靠性机制(序列号、流量控制、拥塞控制)、滑动窗口、延迟应答等。文章还探讨了TCP异常处理、粘包问题,并对比UDP实现可靠传输的可能性,建议高可靠性场景优先使用TCP协议。

2025-10-08 14:00:00 769

原创 传输层:UDP协议

摘要:Linux网络工具netstat用于查看网络状态,常用选项包括-n(数字显示)、-l(监听状态)、-p(显示程序名)等。端口号分为知名端口(0-1023)和动态端口(1024-65535),常见服务如SSH(22)、HTTP(80)等使用固定端口。UDP协议特点包括无连接、不可靠和面向数据报,应用层协议如DNS、DHCP等基于UDP实现。

2025-10-07 11:32:08 937

原创 应用层:Http、Https

本文摘要:文章围绕HTTP协议展开,首先介绍了URL的结构及其重要性,强调清晰URL对用户体验和SEO的影响。随后解析了HTTP请求与响应报头格式,并演示了简单的HttpServer实现。详细讲解了HTTP中常用字段,包括GET/POST请求方式、状态码(如404、301/302)及常见Header(Content-Type、Host等)。特别讨论了长连接(keep-alive)、多资源请求场景以及Cookie的工作原理,同时指出Cookie可能存在的安全隐患。全文系统性地介绍了HTTP协议的关键知识点及其

2025-10-06 11:46:01 886

原创 C++11线程相关

C++11线程库提供了跨平台的线程封装,包含thread类、mutex互斥锁及RAII风格的锁管理类。thread类封装了系统线程API,支持join()、detach()等操作;this_thread命名空间提供线程控制接口。mutex提供基本的lock/unlock功能,使用时需注意参数传递(需用ref()或lambda捕获)。高级特性包括lock_guard/unique_lock自动管理锁生命周期,lock/try_lock多锁操作,以及call_once确保函数只执行一次。这些组件共同构成了C++

2025-10-05 12:09:23 896

原创 网络协议栈

要想深入理解网络编程,必须了解七层网络协议栈。

2025-10-04 15:23:26 360

原创 哈希:闭散列的开放定址法

开放式闭散列的哈希算法,存在一定的哈希冲突,可以通过扩容进行减少哈希冲突的问题,但是要付出相应的空间。

2025-06-01 19:50:57 606

原创 C++红黑树:插入与平衡操作详解

红黑树具有实际应用场景的数据结构,符合大多数运用场景,效率高效

2025-05-17 00:31:23 679 28

原创 Qt 中 QWidget涉及的常用核心属性介绍

QWidget的基本常用属性,详细的介绍可以参考Qt内置的文档助手

2025-05-11 14:53:31 1414 41

原创 C++ 深入解析 数据结构中的 AVL树的插入 涉及的旋转规则

具有高效率查找数据的结构之一,很好的解决了二叉搜索树的极端情况

2025-05-08 21:18:49 649 3

原创 C++ set和map系列(关联式容器)的介绍及使用

具有使用意义的容器,更贴近生活的逻辑需求

2025-05-07 19:22:54 1223 44

原创 C++ 渗透 数据结构中的二叉搜索树

二叉搜索树,在一般情况下,效率为O(log(N)),但在极端的场景下退化为类似链表结构

2025-05-06 23:22:54 1012 49

原创 深入理解C++面向对象特性之一 多态

C++ 的重点之一,多态,也是面向对象的三大特性之一。

2025-04-08 23:21:28 1234 68

原创 深入理解 C++ 三大特性之一 继承

C++ 面向对象的三大特性之一,继承。

2025-04-05 00:12:30 1514 48

原创 深入刨析C++ stl::stack 、stl::queue 及 priority_queue

stack、queue和priority_queue作为容器可以作为我们解决问题的"辅助工具".

2025-03-16 02:11:39 5209 67

原创 深入理解C++ stl::list 底层实现+模拟实现

stl:: list 是 双向带头循环链表,对数据的插入和删除具有高效率。

2025-03-04 23:44:21 2848 66

原创 深入理解并解析C++ stl::vector

vector采用动态数组的方式实现,在实际中挺有用处的一个容器。

2025-03-02 13:41:51 1282 29

原创 深入刨析 之C++ string类

string类的出现,让我们对字符串的使用更加便利。

2025-03-01 22:56:06 958 29

原创 C++ 动态内存管理 详细版

内存释放应警惕,防止酿成大错!!!!

2025-02-23 23:26:03 1073 27

原创 C++ 类和对象 详细版(下)

类和对象,学习C++门槛之一,为后面奠定基础,才能熟练运用理解底层

2025-02-15 21:19:23 813 22

原创 C++ 类和对象 详细版(上)

类和对象是学习C++的第一道门槛,只有打下坚实的基础,才能继续往下走。

2025-02-07 09:34:46 1431 17

空空如也

空空如也

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

TA关注的人

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