自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【网络】HTTPS协议

HTTPS就是在HTTP的基础上,进行了加密,进一步保护了数据的安全。

2024-09-03 23:06:38 901

原创 【网络】HTTP协议

在我们之前写过的服务端和客户端,两者进行通信时,理论上来讲,我们只需要拿着服务端的ip地址和端口号,就可以使用客户端去任意的访问到它。但是IP地址和端口号对人来说很不友好,因为人根本不知道这两个东西加在一起究竟是什么。我们在浏览器网址输入220.181.38.150,就会访问到百度网站,我们在Linux使用telnet访问该ip地址,就会出现一些前端代码,而浏览器不会,因为浏览器会自动识别并且弄出web页面。http(超文本传输协议)就是针对这种问题而提出的一种解决方案。

2024-09-03 10:18:25 1103

原创 【网络】序列化和反序列化

序列化和反序列化是计算机中用于数据存储和传输的重要概念。

2024-06-14 09:49:05 957

原创 【MySql】表的约束

真正约束字段的是数据类型,但是数据类型约束很单一,需要有一些额外的约束,更好的保证数据的合法性,从业务逻辑角度保证数据的正确性。

2024-06-02 21:54:56 860 2

原创 【Qt】信号和槽

自定义槽在Qt designer中推拽一个Push Button,右键单击点传为槽,会生成这么一个函数。在Qt中除了通过connect连接信号槽之外,还有可以通过函数名字的方式自动连接。如果我们改了这个函数的名字,按钮点击无反应,在控制台会出现下面这条信息。自定义信号。

2024-05-30 14:27:04 1030

原创 【Qt】初识

可以在Qt Designer中拖拽方式进行创建。

2024-05-29 19:06:57 691

原创 【网络】网络编程套接字

网络通信的本质就是进程间通信,不过是在不同的主机上。

2024-05-28 16:15:22 1912

原创 【网络】网络基础

将多台电脑连接起来,以达到数据的传输,这是计算机发展的趋势。在此情形下,网络的产生是必然的,因为我们最终还是要方便的拿到这些电脑的数据来进行决策。

2024-05-12 15:51:51 921

原创 【项目】高并发内存池实现(化简版tcmalloc)

tcmalloc,全称Thread-Caching Malloc。叫线程缓存的malloc,其中实现了高效的多线程内存管理,用于替代系统的内存分配相关的函数(malloc、free)。由于new和delete底层也是通过malloc和free实现的。 我们这个项目是把tcmalloc最核心的框架简化了之后再去实现,模拟实现出一个属于自己的高并发内存池,简单的来说目的就是学习tcmalloc的精华。

2024-05-06 17:40:11 715

原创 MySQL#MySql表的操作

MySql表的操作

2024-05-05 19:28:14 357

原创 MySQL#MySql数据库的操作

可以告诉我们当前有哪些用户连接到我们的MySQL,如果查出某个用户不是你正常登陆的,很有可能你的数据库被人入侵了。如果备份一个数据库时,没有带上-B参数, 在恢复数据库时,需要先创建空数据库,然后使用数据 库,再使用source来还原。这时,可以打开看看 mytest.sql 文件里的内容,其实把我们整个创建数据库,建表,导入数据的语句都装载这个文件中。对数据库的修改主要指的是修改数据库的字符集,校验规则。如果备份的不是整个数据库,而是其中的一张表,怎么做?创建数据库的时候,有两个编码集。

2024-05-05 17:42:27 613

原创 MySql#MySql数据库基础

存储数据用文件就可以了,为什么还要弄个数据库?数据库存储介质:磁盘和内存数据库本质:对数据内存存储的一套解决方案,你给我字段或者要求,我直接给你结果就行为了解决上述问题,专家们设计出更加利于管理数据的东西——数据库,它能更有效的管理数据。。mysql是一套给我们提供数据存取的服务的网络程序数据库一般指的是,在磁盘或者内存存储的特定结构组织的数据 -- 在磁盘存储的一套数据库方案数据库服务 -- mysqld。

2024-05-05 15:01:32 821

原创 MySql#MySql安装和配置

1.先去查看自己的系统里是否有mysql和mariadb这两个数据库2.查看下面的路径下是否有文件,有就备份删除。

2024-05-05 13:21:55 523 1

原创 C++之线程库

在C++11之前,涉及到多线程问题,都是和平台相关的,比如windows和linux下各有自己的接口,这使得代码的可移植性比较差。C++11中最重要的特性就是对线程进行支持了,使得C++在并行编程时不需要依赖第三方库,而且在原子操作中还引入了原子类的概念。

2024-05-02 15:59:54 114

原创 Linux之多线程

linux下一个进程是由一个PCB块task_struct,进程地址空间mm_struct,页表+MMU,代码和数据组成,而创建子进程,因为进程具有独立性,子进程也有自己的task_struct,mm_struct,页表。而我们创建出一个只有一个PCB的东西,它指向父进程的进程地址空间,可以通过页表访问父进程的代码和数据,我们把这个称作线程。

2024-05-01 23:45:45 1069 2

原创 C++之类型转换

在C语言中,如果赋和。

2024-05-01 14:33:22 35

原创 linux之进程信号

ctrl+c为什么会杀掉我们的前台进程呢?linux中,每一次登录,一个终端一般会配上一个bash,每一个登录,只允许一个进程是前台进程,可以允许多个进程是后台进程。ctrl+c本质是被进程解释成为,2号信号。

2024-04-28 21:07:20 704

原创 C++之特殊类的设计

类的特殊设计

2024-04-26 19:08:29 316

原创 C++11之智能指针

我们来先看一段代码上述代码有什么问题呢?由于除零错误,异常处理导致该程序没有执行释放a,b指针空间,从而引发内存泄漏这个严重问题。

2024-04-26 13:37:36 769

原创 C++之异常

实际中C语言基本都是使用返回错误码的方式处理错误,部分情况下使用终止程序处理非常严重的错误。

2024-04-23 16:13:39 594

原创 linux之进程通信

进程通信方式

2024-04-22 20:23:57 1111

原创 C++11

从C++0x到C++11,C++标准10年磨一剑,第二个真正意义上的标准珊珊来迟。相比于C++98/03,C++11则带来了数量可观的变化,其中包含了约140个新特性,以及对C++03标准中约600个缺陷的修正,这使得C++11更像是从C++98/03中孕育出的一种新语言。相比较而言,C++11能更好地用于系统开发和库开发、语法更加泛华和简单化、更加稳定和安全,不仅功能更强大,而且能提升程序员的开发效率,公司实际项目开发中也用得比较多,C++11增加的语法特性非常篇幅非常多,我们这里没办法一 一讲解。

2024-04-17 13:35:28 713

原创 数据结构之哈希

unordered_multimap和unordered_multiset可自行查看文档介绍。

2024-04-15 08:17:08 1019

原创 数据结构之红黑树

红黑树,是一种,但在每个结点上,可以是Red或 Black。通过各个结点着色方式的限制,,因而是平衡的。

2024-04-10 19:25:14 417 1

原创 数据结构之AVL树

上一篇文章对map/multimap/set/multiset进行了简单的介绍,在其文档介绍中发现,这几个容器有个共同点是:其底层都是按照二叉搜索树来实现的,但是二叉搜索树有其自身的缺陷,假如往树中插入的元素有序或者接近有序,二叉搜索树就会退化成单枝树,时间复杂度会退化成O(N),因此map、set等关联式容器的底层结构是对二叉树进行了平衡处理,即。

2024-04-09 09:24:25 627

原创 数据结构之搜索二叉树与关联性容器初接触

set是按照一定次序存储元素的容器在set中,元素的value也标识它(value就是key,类型为T),并且每个value必须是唯一的。set中的元素不能在容器中修改(元素总是const),但是可以从容器中插入或删除它们。在内部,set中的元素总是按照其内部比较对象(类型比较)所指示的特定严格弱排序准则进行 排序。set容器通过key访问单个元素的速度通常比unordered_set容器慢,但它们允许根据顺序对子集进行直接迭代。set在底层是用二叉搜索树(红黑树)实现的。

2024-04-07 19:38:22 656

原创 linux之文件系统、inode和动静态库制作和发布

1.没有被打开的文件都在磁盘上 --- 磁盘级文件2.对磁盘级别的文件,我们的侧重点单个文件角度 -- 这个文件在哪里,有多大,其他属性是什么?站在系统角度 -- 一共有多少文件?各自属性在哪里?如何快速找到?可以存储多少个文件?如何快速找到指定文件?如何对此磁盘文件进行分门别类的存储,用来支持更好的存取!3.磁盘文件磁盘是一个外设 + 还是计算机上唯一的一个机械设备4.磁盘结构磁盘盘片、磁头、伺服系统、音圈马达....5.磁盘的存储结构如何找到一个扇区 (CHS寻址)

2024-04-06 23:36:04 1137 1

原创 linux之基础IO

就是一段内存空间 (这个空间谁提供?) --- 初步理解。

2024-03-31 21:35:56 766 3

原创 linux之自主shell编写

在这个shell编写中,我们遇到了很多我们之前很少使用的函数。

2024-03-30 17:17:59 2348 4

原创 linux之进程控制

内核的相关管理数据结构(task_struct + mm_struct + 页表) + 代码和数据。

2024-03-29 22:37:42 2248

原创 linux之进程

指定进程获取某种资源的先后顺序task_struct 进程控制块 -> struct -> 内部字段 -> int prio =???linux中优先级数字越小,优先级越高优先级:已经能,但是看顺序。权限:能不能?的问题地址空间结构体源代码地址空间本质是内核的一个struct结构体!内部很多属性都是表示start end的范围。

2024-03-28 22:43:43 869

原创 Linux调试器-gdb

debug模式:编译器形成可执行程序的时候会给可执行程序添加调试信息。程序员调试时使用debug模式,而release模式用于测试。dubug模式下文件大小大于release模式下文件大小。程序的发布方式有两种,debug模式和release模式。用gcc/g++使用debug模式编译, 加 -g。而gcc/g++默认编译,采用release模式。debug模式下会添加调试信息。

2024-03-25 16:14:05 319 1

原创 Linux之git

版本控制(Revision control)是一种在开发的过程中用于管理我们对文件、目录或工程等内容的修改历史,方便查看更改历史记录,备份以便恢复以前的版本的软件工程技术。简单来说就是用于管理多人协同开发项目的技术。

2024-03-24 23:01:51 437

原创 Linux之gcc_makefile

1. 预处理(进行宏替换)2. 编译(生成汇编)3. 汇编(生成机器可识别代码)4. 链接(生成可执行文件或库文件)五六十年代,我们编程大多是二进制编程,也就是使用打孔纸带喂给机器再往后,科学家们发明汇编语言再往后,人们就发明了高级语言提问:编译器什么时候有的?二进制编程需要编译器吗?汇编语言时期出现了编译器,二进制则不需要最早人们先用二进制写编译器,提供汇编语言进行编程,是先有语言的。

2024-03-19 21:08:58 303 1

原创 linux之vim编辑器的使用

vi/vim的区别简单点来说,它们都是多模式编辑器,不同的是vim是vi的升级版本,它不仅兼容vi的所有指令,而且还有一些新的特性在里面。例如语法加亮,可视化操作不仅可以在终端运行,也可以运行于x window、 mac os、 windows。我们课堂上,统一按照vim来进行讲解。

2024-03-17 19:22:34 513 6

原创 C++多态

比如买票这个行为,当普通人买票时,是全价买票;学生买票时,是半价买票;军人买票时是优先买票。不同的人买票却有不同的价钱,这就是一种多态行为。

2024-03-11 17:13:27 853

原创 c++继承

继承(inheritance)机制是面向对象程序设计使代码可以复用的最重要的手段,它允许程序员在保持原有类特性的基础上进行扩展,增加功能,这样产生新的类,称派生类。

2024-03-10 22:43:52 889

原创 stl之反向迭代器

c++选用正向迭代器来构建反向迭代器,使之与正向迭代器成对称。

2024-03-10 13:01:12 364

原创 stl-list

2. list的底层是双向链表结构,双向链表中每个元素存储在互不相关的独立节点中,在节点中通过指针指向其前一个元素和后一个元素。3.与其他的序列式容器相比(array,vector,deque),list通常在任意位置进行插入、移除元素的执行效率更好。1. list是可以在常数范围内在任意位置进行插入和删除的序列式容器,并且该容器可以前后双向迭代。4.与其他序列式容器相比,list和forward_list最大的缺陷是不支持任意位置的随机访问。二、list模拟实现。

2024-03-09 13:27:00 421

原创 STL之vector

vector是表示可变大小数组的序列容器。二、stl-vector 模拟实现。

2024-03-09 13:23:47 389

空空如也

空空如也

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

TA关注的人

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