随笔分类 -  C++技术栈

1
摘要:C++基础 1 C和C++有什么区别? C++是面向对象,C面向过程 C++引入new/delete运算符,取代了C中的malloc/free库函数; C++有引用的概念,C没有 C++有类的概念,C没有 C++有函数重载,C没有 2 a和&a有什么区别? 比如int a[10]; int (*p) 阅读全文
posted @ 2024-03-25 16:28 mobbu 阅读(63) 评论(0) 推荐(0)
摘要:Webserver项目 webserver项目总结 1 项目介绍 使用多线程模型,利用信号量实现线程间加锁; 利用I0复用技术Epoll与线程池实现多线程的Reactor高并发模型; 利用RAII机制实现了数据库连接池,减少数据库连接建立与关闭的开销; 利用正则与状态机解析 HTTP请求报文实现处理 阅读全文
posted @ 2023-09-14 13:11 mobbu 阅读(130) 评论(0) 推荐(0)
摘要:5 排序算法总结 首先总结表如下: 排序方法 平均时间复杂度 最好情况 最坏情况 空间复杂度 是否稳定 排序方式 冒泡排序 \(O(n^2)\) \(O(n)\) \(O(n^2)\) \(O(1)\) 稳定 内部排序 选择排序 \(O(n^2)\) \(O(n^2)\) \(O(n^2)\) \( 阅读全文
posted @ 2023-09-10 15:17 mobbu 阅读(41) 评论(0) 推荐(0)
摘要:1. OSI 的七层模型分别是?各自的功能是什么? OSI体系7层 应⽤层,负责给应⽤程序提供统⼀的接⼝; 表示层,负责把数据转换成兼容另⼀个系统能识别的格式; 会话层,负责建⽴、管理和终⽌表示层实体之间的通信会话; 传输层,负责端到端的数据传输; ⽹络层,负责数据的路由、转发、分⽚; 数据链路层, 阅读全文
posted @ 2023-09-10 15:16 mobbu 阅读(78) 评论(0) 推荐(0)
摘要:操作系统 1 简单说下你对并发和并行的理解? 并行(parallel):指在同一时刻,有多条指令在多个处理器上同时执行。 并发(concurrency):指在同一时刻只能有一条指令执行,但多个进程指令被快速的轮换执行,使得在宏观上具有多个进程同时执行的效果,但在微观上并不是同时执行的,只是把时间分成 阅读全文
posted @ 2023-09-10 15:15 mobbu 阅读(77) 评论(0) 推荐(0)
摘要:C++基础 1 C和C++有什么区别? C++是面向对象,C面向过程 C++引入new/delete运算符,取代了C中的malloc/free库函数; C++有引用的概念,C没有 C++有类的概念,C没有 C++有函数重载,C没有 2 a和&a有什么区别? 比如int a[10]; int (*p) 阅读全文
posted @ 2023-09-05 20:14 mobbu 阅读(115) 评论(0) 推荐(0)
摘要:# SQL之增删改查 速成SQL之增删改查 SQL(Structured Query Language:结构化查询语言)是用于访问和处理数据库的标准的计算机语言。 SQL 对大小写不敏感:SELECT 与 select 是相同的。 ## 插入数据 INSERT INTO ```SQL INSERT 阅读全文
posted @ 2023-08-22 15:35 mobbu 阅读(137) 评论(0) 推荐(0)
摘要:# 5 项目实战和总结 ## 5.1 阻塞/非阻塞、同步/异步(网络IO) > 典型的一次IO的两个阶段是什么?数据就绪 和 数据读写 - 数据就绪:根据系统IO操作的就绪状态 - 阻塞 - 非阻塞 - 数据读写:根据应用程序和内核的交互方式 - 同步 - 异步 ![img](https://img 阅读全文
posted @ 2023-08-14 19:53 mobbu 阅读(62) 评论(0) 推荐(0)
摘要:# 4 Linux网络编程 ## 4.1 网络结构模式 - C/S结构:服务器/客户机,即 Client - Server(C/S)结构。 - B/S结构:浏览器/服务器,即Browser/Server(B/S)结构 ## 4.2 MAC地址、IP地址和端口 ### 4.2.1 MAC地址 - MA 阅读全文
posted @ 2023-08-06 17:29 mobbu 阅读(105) 评论(0) 推荐(0)
摘要:# 3 Linux多线程开发 ## 3.1 线程概述 ### 3.1.1 线程概述 - 与进程(process)类似,线程(thread)是允许应用程序并发执行多个任务的一种机制。一个进程可以包含多个线程。同一个程序中的所有线程均会独立执行相同程序,且共享同一份全局内存区域,其中包括初始化数据段、未 阅读全文
posted @ 2023-08-02 19:59 mobbu 阅读(74) 评论(0) 推荐(0)
摘要:# 2 Linux多进程开发 ## 2.1 进程概述 ### 2.1.1 程序和进程 程序是包含一系列信息的文件,这些信息描述了如何在运行时创建一个进程: - 二进制格式标识:每个程序文件都包含用于描述可执行文件格式的元信息。内核利用此信息来解释文件中的其他信息。(ELF可执行连接格式) - 机器语 阅读全文
posted @ 2023-07-27 21:20 mobbu 阅读(142) 评论(0) 推荐(0)
摘要:# 6 应用层 ## 6.1 应用层概述 - OSI结构的最顶层 - 一些经典应用:万维网WWW;域名系统DNS;动态主机配置协议DHCP;电子邮件;文件传输协议FTP;P2P文件共享;多媒体网络应用等。 ## 6.2 客户/服务器方式(C/S方式)和对等方式(P2P方式) - 客户/服务器方式(C 阅读全文
posted @ 2023-07-24 16:12 mobbu 阅读(60) 评论(0) 推荐(0)
摘要:# 5 运输层 ## 5.1 运输层概述 * 计算机网络体系结构中的物理层、数据链路层以及网络层它们共同解决了将主机通过异构网络互联起来所面临的问题,实现了主机到主机的通信。 * 但实际上在计算机网络中进行通信的真正实体是位于通信两端主机中的进程。 * 如何为运行在不同主机上的应用进程提供直接的通信 阅读全文
posted @ 2023-07-24 16:10 mobbu 阅读(48) 评论(0) 推荐(0)
摘要:# 4 网络层 ## 4.1 网络层概述 * 网络层的主要任务是实现 **网络互连**,进而**实现数据包在各网络之间的传输**。 * 要实现网络层任务,需要解决以下主要问题: - 网络层向运输层提供怎样的服务(“可靠传输” 还是 “不可靠传输”) - 网络层寻址问题 - 路由选择问题 * 因特网( 阅读全文
posted @ 2023-07-24 16:09 mobbu 阅读(43) 评论(0) 推荐(0)
摘要:# 3 数据链路层 ## 3.1 数据链路层概述 ### 3.1.1数据链路层在网络体系中的地位 传输的数据包为帧**frame** ### 3.1.2 使用点对点信道的数据链路层 * 封装成帧:帧头➕数据单元➕帧尾 * 差错检测 * 可靠传输 ### 3.1.3 使用广播信道的数据链路层 * 共享 阅读全文
posted @ 2023-07-24 16:08 mobbu 阅读(102) 评论(0) 推荐(0)
摘要:# 2 物理层 ## 2.1物理层基本概念 ## 2.2 物理层下传输媒体 * 导引型传输媒体:同轴电缆、双绞、光纤、电力线 * 非导引型传输媒体:无线电波、微波、红外线、可见光 ## 2.3 传输方式 > 串行传输 > 并行传输 > 同步传输 > 异步传输 > 单向通信(单工) > 双向交替通信( 阅读全文
posted @ 2023-07-24 16:08 mobbu 阅读(29) 评论(0) 推荐(0)
摘要:# 1 计算机网络分层 ## 1.1 报文交换 1. 电路交换 2. 报文交换 3. 分组交换(目前都使用) ## 1.2 计算机网络定义 ## 1.3 计算机网路的分类 - 总线型网络 - 星型网络 - 环型网络 - 网状型网络 ## 1.4 计算机网络性能指标 1. 速率:比特; 速率(比特率) 阅读全文
posted @ 2023-07-24 16:07 mobbu 阅读(170) 评论(0) 推荐(0)
摘要:# 1程序内存模型 ## 1.1 内存分区模型 C++程序在执行时,将内存大方向划分为**4个区域** - 代码区:存放函数体的二进制代码,由操作系统进行管理的 - 全局区:存放全局变量和静态变量以及常量 - 栈区:由编译器自动分配释放, 存放函数的参数值,局部变量等 - 堆区:由程序员分配和释放, 阅读全文
posted @ 2023-07-17 19:12 mobbu 阅读(137) 评论(0) 推荐(0)
摘要:# 1 工厂模式 工厂模式(Factory Pattern):定义一个创建对象的接口,但是让子类决定要实例化的类是哪一个,将对象的创建和使用分离开来,降低代码的耦合度。 工厂模式(Factory Pattern)是一种创建型设计模式,用于创建对象而不会暴露创建逻辑。它允许在运行时确定创建哪个具体类的 阅读全文
posted @ 2023-07-17 11:27 mobbu 阅读(121) 评论(0) 推荐(0)
摘要:# 1 Linux系统编程入门 ## 1.1Linux开发环境搭建 我使用的是阿里云2核2G的服务器1年108元 1. 设置服务器root密码,重启服务器 2. root用户登录,进行添加新用户 3. 注册自己使用的用户 ``` sudo useradd -r -m -s /bin/bash tse 阅读全文
posted @ 2023-07-13 17:34 mobbu 阅读(132) 评论(0) 推荐(0)

1