自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【Linux】文件系统

目录是文件嘛?是的。目录有iNode嘛?有目录有内容嘛?有任何一个文件,一定在一个目录内部,所以一个目录的内容是什么?需要数据块,目录的数据库里面保存的是该目录下对应的映射关系。

2023-09-06 20:23:20 3355 108

原创 【Linux】基础IO

我们要打开文件时,文件被加载进内存当中,此时文件是被进程管理着的。进程对文件的管理同样也是用数据结构进行管理。这个数据结构名字叫做files_struct。而files_struct里面有一个叫做fd_arrays的东西,这个数组的下标就是文件描述符fd。这个数组里面放着文件指针file*,可以指向文件,管理文件

2023-08-31 18:23:47 3208 90

原创 【C++】红黑树

红黑树,是一种二叉搜索树,但在每个结点上增加一个存储位表示结点的颜色,可以是Red或Black。 通过对任何一条从根到叶子的路径上各个结点着色方式的限制,红黑树确保没有一条路径会比其他路径长出俩倍,因而是接近平衡的。

2023-08-23 16:21:57 2778 182

原创 【Linux】进程地址空间

每个进程都有一个地址空间,都认为自己在独占物理内存。而这个地址空间在内核中是一个结构体 struct mm_struct,称为进程地址空间。以及进程地址空间的作用,解决子进程修改变量的值而父进程中不受影响的原因,

2023-08-16 09:48:54 3026 114

原创 【Qt】网络

在Qt中,网络编程使用Qt网络模块来实现。对网络编程的API也进行了重新封装。提供了一套高级的网络编程接口,可以方便地进行网络通信。在进行网络编程之前,需要在项目中的.pro文件中添加network 模块. 添加之后要 手动编译一下项目, 使Qt Creator能够加载对应模块的头文件.Qt中的网络模块就是封装了网络API,可参考网络模块,点此处跳转。

2024-04-03 11:38:15 1165

原创 【Qt】文件操作

文件操作是应用程序必不可少的部分。Qt作为一一个通用开发库,提供了跨平台的文件操作能力。Qt提供了很多关于文件的类,通过这些类能够对文件系统进行操作,如文件读写、文件信息获取、文件复制或重命名等。在Qt中,文件读写的类为QFile。QFile 的父类为QFileDevice,QFileDevice 提供了文件交互操作的底层功能。QFileDevice 的父类是QIODevice, QIODevice 的父类为QObject。

2024-04-01 16:19:03 955

原创 【Qt】系统相关(事件)

有些事件 是在用户操作时发出,如键盘事件、鼠标事件等,另一些事件则是由系统本身自动发出,如定时器事件。如:在实现鼠标的进入和离开事件时,直接重新实现enterEvent()和leaveEvent()即可。常见的事件有:QMouseEvent,QKeyEvent,QTimerEvent,QDropEvent,QInputEvent,QPaintEvent。创建一个QWidget文件,自己实现一个Label类,继承QLabel,重写其中的entetEvent和leaveEvent方法。

2024-04-01 14:29:20 987

原创 【Linux】普通用户提升权限

在Linux环境下,给普通用户提权的方式,su与sudo命令,su是将一个普通用户登录为root,而sudo则是将普通用户短暂提升权限普通用户使用$root使用#

2024-03-31 19:07:30 564

原创 【Qt】窗口

Qt窗口是通过QMainWindow类来实现的。QMainWindow是一个为用户提供主窗口程序的类,继承自QWidget类,并且提供了一个预定义的布局。QMainWindow包含一个菜单栏(menu bar)、多个工具栏(tool bars)、多个浮动窗口(铆接部件) (dock widgets)、一个状态栏(status bar)和一个中心部件(central widget),它是许多应用程序的基础,如文本编辑器,图片编辑器等。

2024-03-31 17:18:59 1466

原创 【Qt】布局管理器

之前使用Qt在界面.上创建的控件,都是通过"绝对定位"的方式来设定的.也就是每个控件所在的位置,都需要计算坐标,最终通过setGeometry| 或者move| 方式摆放过去.这种设定方式其实并不方便.尤其是界面如果内容比较多,不好计算.而且一个窗口大小往往是可以调整的,按照绝对定位的方式,也无法自适应窗口大小。因此Qt引入"布局管理器" (Layout)机制,来解决上述问题.

2024-03-31 11:19:09 1022

原创 【Qt】常用控件(容器类)

使用QTabWidget实现一个带有标签页的控件,可以往里面添加一-些 widget.进一步 的就可以通过标签页来切换.使用QGroupBox 实现一个带有标题的分组框.可以把其他的控件放到里面作为一-组.这样看起来能更好看一点.

2024-03-30 16:00:56 485

原创 【Qt】常用控件(多元素控件)

xxWidget 和 xxView 的区别 以 QTableView 和 QTableView 为例 QTableView 是基于 MVC设计的控件,QTableView 自身不持有数据。使用QTableView 的时候需要用户创建一个 Model 对象(比如QStandardModel),并且把Model 和 QTableView 关联起来。后续修改 Model 中的数据就会影响QTableView 的显示;

2024-03-30 13:46:03 1065

原创 【Qt】常用控件(输入类)

QTextEdit 表示多行输入框.也是一个富文本& markdown编辑器.QLineEdit 用来表示单行输入框,可以输入一段文本,但是不能换行。在ui中拖入几个lineEdit以及label和pushbutton。先在ui中拖入需要的控件,一个TestEdit。并且能在内容超出编辑框范围时自动提供滚动条.QComboBox 表示下拉框。方法① 使用代码设置条目内容。方法② 右键控件点击编辑项目。QSlider表示一个滑动条。

2024-03-29 18:28:36 1424

原创 【Qt】常用控件(标签类)

QLabel标签继承于QFrame,QFrame继承于QWidget,是Qt中最基础也是最常用的控件。 QLabel不提供用户交互功能,标签的视觉外观可以通过多种方式进行配置,并且可以使用它为其他界面的标签

2024-03-29 16:03:37 1081

原创 【Qt】常用控件(按钮类)

QAbstractButton .这个类是⼀个抽象类.是其他按钮的⽗类。常用的按钮类,QPushbutton,QCheckBox,QRadioButton,QToolButton

2024-03-28 09:49:20 483

原创 【Qt】常用控件(QWidget)

QWidget是Qt框架中的一个核心类,用于创建图形用户界面(GUI)应用程序的基本可视化元素。它提供了一个抽象的用户界面对象,可以用于创建应用程序的窗口、部件和小部件

2024-03-27 16:05:40 1305

原创 【Qt】信号和槽

在Qt中,用户和控件的每次交互过程称为一个事件。比如"用户点击按钮"是一个事件,"用户关闭窗口"也是一个事件。每个事件都会发出一个信号,例如用户点击按钮会发出"按钮被点击"的信号,用户关闭窗口会发出"窗口被关闭"的信号。Qt中的所有控件都具有接收信号的能力,一个控件还可以接收多个不同的信号。对于接收到的每个信号,控件都会做出相应的响应动作。例如,按钮所在的窗口接收到"按钮被点击"的信号后,会做出"关闭自己"的响应动作;

2024-03-27 12:21:36 1570

原创 【Qt】初识Qt

QT是一个跨平台的C++图形用户界面应用程序框架。它为应用程序开发者提供建立艺术级图形所需的所有功能。它是完全面向对象的,容易扩展,并且允许真正的组件编程。Qt不仅仅可以进行GUI开发,除此之外Qt也能进行很多其它功能开发,包括但不限于多线程、数据库、图像处理、音视频处理、网络通信与文件IO等。

2024-03-26 09:50:34 1184

原创 【问题解决】虚拟机centos7开放端口

开放虚拟机端口号

2024-03-26 09:49:13 172

原创 【C++】文件IO

C++的流有数据流动的意思。为了实现这种流动,C++定义了I/O标准类库,这些每个类都称为流/流类,用以完成某方面的功能。它的特性是:有序连续、具有方向性

2024-02-02 17:16:52 879 1

原创 【C++】C++11新特性(lambda表达式)

Lambda表达式是现代C++在C ++ 11和更高版本中的一个新的语法糖 ,在C++11、C++14、C++17和C++20中Lambda表达的内容还在不断更新。 lambda表达式(也称为lambda函数)是在调用或作为函数参数传递的位置处定义匿名函数对象的便捷方法。通常,lambda用于封装传递给算法或异步方法的几行代码 。Lambda有很多叫法,有Lambda表达式、Lambda函数、匿名函数

2024-02-02 12:51:37 563

原创 【MySQL】用户管理

与Linux操作系统类似,MySQL中也有超级用户和普通用户之分。如果一个用户只需要访问MySQL中的某一个数据库,甚至数据库中的某一个表,那么可以为其创建一个普通用户,并为该用户赋予对应的权限,而不让该用户看到数据库中的其他数据,防止该用户对其他数据进行误操作。

2024-01-30 17:07:12 1638

原创 【MySQL】创建用户时报错

在使用mysql服务时,用root创建用户,出现如下错误 The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement

2024-01-30 17:02:49 345

原创 【MySQL】MVCC多版本并发控制

多版本并发控制(Multi-Version Concurrency Control,MVCC)是一种用来解决读写冲突的无锁并发控制,主要依赖记录中的3个隐藏字段、undo日志和Read View实现。为事务分配单向增长的事务ID,为每个修改保存一个版本,将版本与事务ID相关联,读操作只读该事务开始前的数据库快照。MVCC保证读写并发时,读操作不会阻塞写操作,写操作也不会阻塞读操作,提高了数据库并发读写的性能,同时还可以解决脏读、幻读和不可重复读等事务隔离性问题。

2024-01-29 20:59:40 971

原创 【MySQL】视图

视图是一个虚拟表,其内容由查询定义,同真实的表一样,视图包含一系列带有名称的列和行数据。视图中的数据并不会单独存储在数据库中,其数据来自定义视图时查询所引用的表(基表),在每次引用视图时动态生成。

2024-01-29 20:58:23 928

原创 二叉树的最近公共祖先,二叉搜索树的最近公共祖先(同一个思路)

二叉树的最近公共祖,先给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。度百科中最近公共祖先的定义为:“对于有根树 T 的两个节点 p、q,最近公共祖先表示为一个节点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)

2024-01-27 20:29:55 1180

原创 【MySQL】事务

事务由一条或多条SQL语句组成,这些语句在逻辑上存在相关性,共同完成一个任务,事务主要用于处理操作量大,复杂度高的数据。比如转账就涉及多条说SQL语句,包括查询余额(select)、在当前账户上减去指定金额(update)、在指定账户上加上对应金额(update)等,将这多条SQL语句打包便构成了一个事务。

2024-01-27 20:17:17 713

原创 【MySQL】索引的认识

在MySQL中索引使用的数据结构主要有BTree索引和hash索引。 存储引擎不同, 使用的数据结构也不同.MySQL中有主要的两个存储引擎:MyISAM和InnoDB. 这篇文章是根据MySQL的InnoDB来介绍的. InnoDB这个存储引擎使用的是B+Tree.

2024-01-25 17:28:46 1100

原创 【MySQL】表内外连接

内连接就是利用where子句对两种表形成的笛卡尔积进行筛选,之前博客写的查询都是内连接,也是在开发过程中使用的最多的连接查询。对stu表和exam表联合查询,把所有的成绩都显示出来,即使这个成绩没有学生与它对应,也要显示出来。可以看到,在联合查询的情况下,没有查询到没有考试的同学,列出部门名称和这些部门的员工信息,同时列出没有员工的部门。此时,我们可以使用左外连接将没有考试的同学也查询出来。如果联合查询,右侧的表完全显示我们就说是右外连接。如果联合查询,左侧的表完全显示就是左外连接。

2024-01-25 17:25:28 484

原创 【计算机网络】Linux下的五种IO模型

当我们了解了传输层TCP协议的数据缓冲区之后,对用户层的IO就有了一个新的理解,其实用户层调用send等函数发送数据的过程其实是向发送缓冲区中写数据的过程,而调用recvform的过程其实就是向接收缓冲区中读取的过程。而真正什么时候发送数据以及怎么发数据其实是由传输层决定的,即由OS来决定的。因此我们发现我们所说的IO其实就是缓冲区的读写等待+拷贝数据。当缓冲区数据就绪的时候,应用层就可以从缓冲区中拷贝数据或者向缓冲区中发送数据了;当缓冲区没有就绪的时候就需要应用层来进行等待了。

2023-12-21 17:43:51 1022 6

原创 【MySQL】基础的增删改查

DML英文全称是Data Manipulation Language(数据操作语言),用来对数据库中表的数据记录进行增、删、改操作。添加数据(INSERT)修改数据(UPDATE)删除数据(DELETE)DQL英文全称是Data Query Language(数据查询语言),数据查询语言,用来查询数据库中表的记录。

2023-12-18 11:27:02 329 4

原创 【MySQL】表的约束

在MySQL里,“约束”指的是对表中数据的一种限制约束,它能够确保数据库中数据的准确性和有效性比如有的数据是必填项,就像身份认证的时候,或者填注册信息的时候,手机号身份证这种就不能空着,所以就有了非空约束;又有的数据比如用户的唯一id,不能跟其他人的一样,所以就需要使用唯一约束等等。在MySQL中常见的约束:主键约束、外键约束、唯一约束、非空约束和默认值约束。

2023-12-13 11:34:34 370 5

原创 【MySQL】数据类型

MySQL基本数据类型详解。

2023-11-15 21:14:33 526 6

原创 【MySQL】库和表的操作

这篇文章主要讲解的是mysql对库的操作,例如,创建库,修改库的字符集和校验集,删除库,以及库的备份等。以及对表的各种操作,创建表,查看表,修改表以及删除表等。

2023-11-13 09:37:52 504 1

原创 【MySQL】初识数据库

数据库服务器就是一个软件(比如mysql软件)将数据库软件安装在电脑上,当前电脑就是一个数据库服务器。可以对外提供存取数据的服务。在一个数据库服务器中可以创建多个数据库(databases),每一个数据库都是一个单独的仓库。

2023-11-12 09:13:24 486

原创 【计算机网络】数据链路层——以太网协议

IP拥有将数据跨网络从一台主机送到另一台主机的能力,但IP并不能保证每次都能够将数据可靠的送到对端主机,因此IP需要上层TCP为其提供可靠性保证,比如数据丢包后TCP可以让IP重新发送数据,最终在TCP提供的可靠性机制下IP就能够保证将数据可靠的发送到对端主机。网络层IP提供的是跨网络发送数据的能力,传输层TCP是为数据发送提供可靠性保证的,而链路层解决的则是两台相连主机之间的通信问题。

2023-11-03 17:54:06 945 3

原创 【计算机网络】网络层——IP

应用层http协议是进行构建和解析请求request和响应response。传输层的TCP/UDP协议是不提供数据的运输。传输层是为数据传输指定规则。但是,UDP协议并不保证数据传输的可靠性。TCP协议制定了确认应答机制,超时重传机制,连接管理机制,拥塞控制等保证了数据的可靠性,制定了捎带应答,延时应答,快重传机制等保证了数据传输的效率实际有数据传输能力的网络IP协议和数据链路层(后面讲),提供了将数据从主机A跨网络送到主机B的能力。

2023-11-02 19:22:44 399

原创 【计算机网络】传输层——TCP

TCP协议这么复杂就是因为TCP既要保证可靠性,同时又尽可能的提高性能。检验和、序列号、确认应答、超时重传、连接管理、流量控制、拥塞控制。滑动窗口、快速重传、延迟应答、捎带应答。理解传输控制协议TCP的各种机制实际都没有谈及数据真正的发送,这些都叫做传输数据的策略。TCP协议是在网络数据传输当中做决策的,它提供的是理论支持,比如TCP要求当发出的报文在一段时间内收不到ACK应答就应该进行超时重传,而数据真正的发送实际是由底层的IP和MAC帧完成的。

2023-10-31 19:51:01 514 5

原创 【计算机网络 】传输层——UDP

因此UDP本身是会维护一个接收缓冲区的,当有新的UDP报文到来时就会把这个报文放到接收缓冲区当中,此时上层在读数据的时就直接从这个接收缓冲区当中进行读取就行了,而如果UDP接收缓冲区当中没有数据那上层在读取时就会被阻塞。因此UDP的接收缓冲区的作用就是,将接收到的报文暂时的保存起来,供上层读取。而socket接口往下的传输层实际就是由操作系统管理的,因此UDP是属于内核当中的,是操作系统本身协议栈自带的,其代码不是由上层用户编写的,UDP的所有功能都是由操作系统完成,因此网络也是操作系统的一部分。

2023-10-29 20:38:10 696 13

原创 【计算机网络】应用层——HTTPS协议

HTTP 协议内容都是按照⽂本的⽅式明⽂传输的. 这就导致在传输过程中出现⼀些被篡改的情况.在网络上搜索资料时,会看到有人把HTTPS叫HTTPS协议(全称:Hypertext Transfer Protocol over Secure Socket Layer),这种叫法不能说是错的。但严格来说HTTPS不是一个新的独立协议,他是HTTP协议加上安全协议(SSL/TLS)的统称。其中SSL是个加密套件,负责对HTTP的数据进行加密。TLS是SSL的升级版。现在提到HTTPS,加密套件基本指的是TL

2023-10-28 15:43:10 529 5

空空如也

空空如也

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

TA关注的人

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