自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

℉f的博客

每一个不曾起舞的日子,都是对生命的辜负。

  • 博客(125)
  • 收藏
  • 关注

原创 【Linux】五种IO模型

本篇文章会讲解五种IO模型,包括阻塞IO、非阻塞IO、信号驱动IO、多路转接以及异步IO。

2024-10-09 09:45:00 1688 42

原创 【网络】DNS协议、ICMP协议

DNS协议与ICMP协议

2024-09-10 08:45:00 2913 85

原创 【网络】NAT、代理服务、内网穿透

NAT技术、NAT技术IP转换过程,什么是代理服务器?什么是内网穿透?

2024-08-31 08:30:00 3108 76

原创 【网络】数据链路层-MAC帧

数据链路层、以太网MAC帧详解、ARP协议、RARP协议

2024-08-27 11:02:01 8662 79

原创 【网络】网络层协议-IP协议

网络层&IP协议基本概念、IP协议格式详解、网段划分相关概念、IP地址数量限制、私有IP和公网IP以及路由相关知识。

2024-08-24 09:00:00 3543 67

原创 【网络】【Linux】Linux内核中连接的组织形式与全连接队列

分析linux内核源码,理解套接字系统级原理,套接字在linux内核中的组织形式,与文件的关系,以及Tcp全连接队列等

2024-08-16 09:58:09 2762 59

原创 【网络】抓包工具的使用

Tcpdump抓包与wireshark抓包。

2024-08-16 09:49:38 811 5

原创 【网络】传输层协议-Tcp协议

传输层Tcp协议,两万字图文详细讲解Tcp报文格式、确认应答机制、超时重传机制、连接管理机制:三次握手,四次挥手、滑动窗口、流量控制、拥塞控制、延迟应答、捎带应答、面向字节流、粘包问题、Tcp异常情况处理等内容。

2024-08-14 09:38:55 1278 49

原创 【网络】传输层协议-Udp协议

Udp传输层协议

2024-08-14 09:30:13 1023 4

原创 【网络】应用层协议-http协议

在编写网络通信代码时,我们可以自己进行协议的定制,但实际有很多优秀的工程师早就已经写出了许多非常成熟的应用层协议,其中最典型的就是HTTP协议。本文内容:HTTP协议详解、cookie和session、HTTPS协议讲解(数据加密、数字指纹、CA认证)。

2024-08-12 09:54:57 2827 46

原创 【Linux】【网络】进程间关系与守护进程

进程组、会话、作业与守护进程。

2024-08-10 10:06:08 1475 45

原创 【网络】协议与网络版计算器

为了使数据在网络上能够从源到达目的,网络通信的参与方必须遵循相同的规则,我们将这套规则称为协议(protocol),而协议最终都需要通过计算机语言的方式表示出来。只有通信计算机双方都遵守相同的协议,计算机之间才能互相通信交流。

2024-08-08 09:38:25 2365 51

原创 【网络】网络编程套接字(二)

多个版本的Tcp网络服务器实现。

2024-08-06 09:53:16 1867 56

原创 【C++】线程库

语言可以使技术具有跨平台性,在C++11提供线程库之前,由于线程在不同操作系统下实现的方式各不相同,比如Windows和Linux下各有自己的接口,这使得代码的可移植性比较差,为了解决这一问题,C++11引入了线程库,使用该线程库并不需要依赖第三方库(-lpthread)。

2024-08-04 10:35:57 967 36

原创 【C++】特殊类设计

本篇文章目的在于让读者掌握常见特殊类的设计方式,以便未来开发。

2024-08-02 09:00:00 1214 32

原创 【C++】智能指针

在『 异常』部分我们提到了内存泄漏的问题,当时我们解决的方案是『 异常的重新抛出』,但很明显这种方案虽然有效,但是这无疑让我们的代码看起来并不整齐且复杂,那么C++为了预防内存泄漏,给我们提供了一种解决方案:智能指针。

2024-07-28 10:08:01 1375 50

原创 【C++】类型转换

本篇文章我们会从C语言的类型转换策略入手,剖析C语言类型转换的优点缺点,并且对于这些特性C++又是如何处理的?

2024-07-28 10:07:30 1080 1

原创 【C++】IO流

关于C++的IO流,最常见的便是cin、cout,那今天我们一起来系统学习下C++的IO流。

2024-07-25 08:45:00 2195 38

原创 【网络】网络编程套接字(一)

socket编程入门,附有Udp简易回声服务器实现。

2024-07-15 06:00:00 2435 49

原创 【网络】网络基础(一)

在计算机发展初期,计算机之间相互独立,每个终端各自持有数据,这明显对于数据的共享很不友好,为了高效的数据传输和共享,世界各地的科学家、实验室就开始想办法提出自己的解决方案用来解决多设备数据共享的问题,所以在这一阶段形成了网络互联的概念。

2024-07-03 10:54:33 5420 58

原创 【Linux】线程周边002之线程安全

本篇文章内容:线程互斥、互斥量的使用、线程同步、条件变量的使用、可重入函数与线程安全相关内容。

2024-07-01 09:23:21 1881 46

原创 【Linux】生产者消费者模型

本篇文章内容:生产者消费者模型概述、基于阻塞队列BlockQueue的生产者消费者模型、POSIX信号量、基于环形队列的生产者消费者模型。

2024-05-25 15:30:00 1525 68

原创 【Linux】线程周边001之多线程

本篇文章内容:对线程的理解、地址空间与页表、线程控制、线程特点、分离线程、线程ID等。

2024-05-16 08:15:00 1588 30

原创 【算法】基础算法005之位运算

常见位运算

2024-05-16 08:00:00 383

原创 【Linux】信号

信号在我们的生活中无处不在,比如红绿灯给你递达了一个红灯停绿灯行的信号,收到快递取件码给你抵达了一个快递到了的信号等等,那么在计算机中也有信号的概念,对只不过接收信号的个体从人变成了进程,本篇文章我们会以信号的产生、信号的保存以及信号的处理来介绍信号的概念。

2024-05-13 09:45:00 1596 60

原创 【算法】基础算法004之前缀和

本篇文章为大家带来前缀和算法,前缀和算法可以以O(1)的时间复杂度快速求出某一段连续区间的和,这个连续区域既可以是一维的也可以是二维的。

2024-05-08 09:36:04 1629 68

原创 【Linux】进程间通信

由于进程间具有独立性,他们之间是不能直接访问获取甚至修改对方的数据的,但是在实际需求中,我们需要进程之间进行交互,所以必须开发某种方式使进程间可以建立联系。在最开始,进程间通信最原始的方式就是利用管道,当然随之也有诸多不同的进程间通信的标准,接下来就让我们一起来学习下吧!

2024-05-05 14:00:00 2336 61

原创 【C++】异常

C语言是如何处理错误的?C语言处理错误的机制实际上比较低级,比如直接终止程序assert或者返回错误码自行查表找错等,那C++作为一个面向对象的语言,对比C语言来说处理错误的方式有何优点呢?今天让我们一起来学习一下『 异常处理』吧。

2024-04-29 10:00:00 2431 67

原创 【算法】基础算法003之二分

本篇文章主要围绕二分算法展开,二分算法主要利用的是数据的二段性,当数据符合某种规律时,可以根据这种规律将数据分为两段,并且每次查找都可以将另一段舍去。注意:二分算法并不仅仅适用于有序时,而是数据满足某种规律即可。

2024-04-29 09:45:00 1794 3

原创 【C++】C++11 包装器

我们目前学习过的可调用对象有三种:函数指针、仿函数以及lambda表达式(实际上也是仿函数),但是这三种可调用对象却又有各自的缺点,比如函数指针类型写起来比较复杂,仿函数的类型不统一,而lambda表达式语法层上就没有类型,所以C++11引入了包装器,主要就是为了封装他们,统一类型。

2024-04-22 09:56:18 1779 66

原创 【C++】C++11右值引用

今天我们正式进入C++11的学习,C++11引入的一个非常重要的语法就是右值引用,在C++11之前的C++版本我们所提的引用都是左值引用,那么右值引用与左值引用又有什么区别呢?什么是左值?什么是右值?右值引用的价值体现在哪里?那么接下来我们就来学习有关右值引用的相关知识。

2024-04-19 14:15:00 1835 61

原创 【C++】C++11 lambda表达式

lambda表达式的引入是为了简化代码,提高代码的可读性,在某种角度上来看,lambda表达式实际上是一个匿名函数。

2024-04-15 09:45:00 1421 58

原创 【C++】C++11可变参数模板

其实我们之前经常使用可变参数模板,C语言的printf函数大家一定非常熟悉,其实这就是一种可变参数模板:那么在C++11引入可变参数模板的设计可以带来什么变化呢?让我们一起来学习下吧!

2024-04-09 09:45:00 2688 73

原创 我的创作纪念日

每一个不曾起舞的日子,都是对生命的辜负。

2024-04-09 08:00:00 748 10

原创 【C++】C++11类的新功能

在C++11中,类增加了2个新的默认成员函数,没错就是我们上一篇刚刚学习的移动构造与移动赋值,并且新增了一些功能,比如default、delete、final和override等关键字,让我们一起来探讨一下吧!

2024-04-04 08:00:00 3142 67

原创 【Linux】动态库与静态库

本篇文章博主会与大家共同学习动静态库的相关内容,涉及到动静态库的基本知识与特征,动静态库的打包与使用等内容。

2024-04-01 12:15:21 2270 57

原创 【C++】哈希应用之布隆过滤器

布隆过滤器是哈希的又一重要应用,上篇文章我们谈到位图只能处理整型数据的问题,那么对于布隆过滤器来说它结合了哈希与位图,使数据处理扩展到了字符串甚至其他数据类型上。

2024-03-26 16:15:00 3331 76

原创 【C++】哈希应用之位图

哈希是一种解决问题的思想,那么有关哈希的一个重要应用便是位图,该种结构适用于海量数据,数据无重复的场景,通常用来判断某个数据存在或者不存在,但只能处理整型数据。

2024-03-26 09:45:00 1729 45

原创 【C++】如何用一个哈希表同时封装出unordered_set与unordered_map

上次我们模拟实现了闭散列的哈希表与开散列的哈希表,但很明显上次实现的很粗糙功能很简单,迭代器并没有实现,以及泛型编程思想也没有应用,那么对于本篇文章我们要用一个哈希表同时封装出unordered_set 与 unordered_map,对此我们之前已经成功用一颗红黑树同时封装出set与map,大致的思想是类似的,只不过这里会略微复杂一些。

2024-03-24 07:39:19 2092 66

原创 【数据结构】哈希表与哈希桶

本篇文章我们共同学习哈希结构,哈希结构追求更极致的搜索效率。之前学习的结构中搜索的效率取决于搜索过程中元素的比较次数,因此顺序结构中查找的时间复杂度为O(N),平衡树中查找的时间复杂度为树的高度O(logN)。那我们能不能构建一种数据结构,让搜索效率达到O(1)呢。如果构造一种存储结构,该结构能够通过某种函数使元素的存储位置与它的关键码之间能够建立一一映射的关系,那么在查找时就能通过该函数很快找到该元素进而达到O(1)的查找效率。接下来就让我们共同学习哈希结构。

2024-03-20 10:00:00 2862 81

C++知识图谱(xmind原生文件+全1195主题+图文代码内嵌)

内容概要:本C++知识图谱为原生xmind文件,可二创,包含13个主题:C++基础、类和对象、内存管理、模板、IO流、继承、多态、C++11、异常、智能指针、特殊类设计、C++类型转换、STL与数据结构。 适合人群:C++后端开发面试、C++期末考试复习、创作思维导图参考、学习C++并尝试剖析部分底层原理。 能学到什么:C++基础知识(引用)、类和对象(默认成员函数)、C\C++内存管理、继承多态底层原理(虚基表、虚表、重载、重写、隐藏)、C++11新特性、智能指针模拟实现、单例模式、STL六大组件(迭代器失效)、数据结构模拟实现(红黑树、AVL树、哈希)等内容。 阅读建议:建议搭配博主C++专题学习,专题博文中有更详细的知识讲解,CSDN->樊梓慕。

2024-09-22

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

TA关注的人

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