自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 23种设计模式--c++

并且可以看到,AbstractFactory模式通常都是使用 Factory 模式实现。

2023-12-12 16:51:24 861

原创 proto文件详解

如果想要将消息类型用在rpc系统中,可以在.proto文件中定义一个rpc服务接口,protocolbuffer编译器会根据所选择的不同语言生成服务接口代码及存根。上述代表表示,定义了一个RPC服务。// 声明了protobuf的版本// 声明了代码所在的包(对于C++来说是namespace)//定义下面的选项,表示生成service服务类和rpc方法描述,默认不生成message ResultCode//封装一下失败类//表示第1字段//表示第2字段。

2023-11-27 15:25:00 1644 1

原创 MySQL实战45讲--笔记

MySQL可以分为两部分。Server层包括连接器、查询缓存、分析器、优化器、执行器等,涵盖MySQL的大多数核心服务功能,以及所有的内置函数(如日期、时间、数学和加密函数等),,比如存储过程、触发器、视图等。而。其架构模式是插件式的,支持InnoDB、MyISAM、Memory等多个存储引擎。现在最常用的存储引擎是InnoDB,它从MySQL 5.5.5版本开始成为了默认存储引擎。第一步,,这时候接待你的就是连接器。连接器负责跟客户端建立连接、获取权限、维持和管理连接。

2023-11-14 12:56:58 91 1

原创 计网整理 -- IP

P 在 TCP/IP 参考模型中处于第三层,也就是。网络层与数据链路层有什么关系呢?有的小伙伴分不清 IP(网络层) 和 MAC (数据链路层)之间的区别和关系。其实很容易区分,在上面我们知道 IP 的作用是主机之间通信用的,而其实,在网络中数据包传输中也是如此,

2023-11-12 14:06:16 52

原创 计网整理--TCP

我们来看看 RFC 793 是如何定义「连接」的:简单来说就是,用于保证可靠性和流量控制维护的某些状态信息,这些信息的组合,包括 Socket、序列号和窗口大小称为连接。所以我们可以知道,建立一个 TCP 连接是需要客户端与服务端达成上述三个信息的共识。Socket:由 IP 地址和端口号组成序列号:用来解决乱序问题等窗口大小:用来做流量控制三次握手才可以阻止重复历史连接的初始化(主要原因)三次握手才可以同步双方的初始序列号三次握手才可以避免资源浪费简单来说,三次握手的。

2023-11-08 13:31:39 62 1

原创 计网整理--HTTP

同时 HTTP 由于是工作在应用层(

2023-11-06 16:00:15 35

原创 计网整理--基础篇

最上层的,也是我们能直接接触到的就是)应用层只需要专注于为用户提供应用功能,比如 HTTP、FTP、Telnet、DNS、SMTP等。应用层是不用去关心数据是如何传输的,而且应用层是工作在操作系统中的用户态,传输层及以下则工作在内核态。

2023-10-25 18:07:34 36 1

原创 eventloop 模块总结

事件循环(event loop)就是任务在主线程不断进栈出栈的一个循环过程。任务会在将要执行时进入主线程,在执行完毕后会退出主线程。在Linux中创建一个事件循环(Event Loop)的基本思想就是在程序运行期间保持一个无限运行的循环,这个循环可以监听并响应不同的事件,例如I/O操作,定时器,信号等等。

2023-10-13 16:09:38 39

原创 c++面经整理(四)STL

list是序列容器,允许在序列中的任何位置执行固定O(1)时间复杂度的插入和删除操作,并在两个方向进行迭代。list容器使用双链表实现;双链表将每个元素存储在不同的位置,每个节点通过next,prev指针链接成顺序表。list与其他标准序列容器(array,vector和deque)相比,list通常可以在容器内的任何位置插入、提取和移动元素。

2023-10-10 10:32:44 93 1

原创 URI详解

SchemeScheme指的就是方案,比如HTTP,HTTPS,FTP等,都是可以使用的,思想不要被这些常用的协议给局限了,我们还可以自定义协议,只要服务器支持即可。Scheme可以是由字母,数字,+,-,.,都是允许的。注意:在Scheme之后,必须使用://把Scheme与后面的部分区分开来Queryquery就是查询参数,是一个可选的参数,如有有的话,那么必须要以?开头我们最常用的形式就是使用key=value,比如上面的例子name=naonao但Query并不仅仅是支持这种,它是可以支持pchar

2023-10-08 14:47:00 406 1

原创 c++面经整理(二)c++面向对象

重载和重写的区别:范围区别:重写和被重写的函数在不同的类中,重载和被重载的函数在同一类中(同一作用域)。重写与被重写的函数参数列表一定相同,重载和被重载的函数参数列表一定不同。virtual的区别:重写的基类必须要有virtual修饰,重载函数和被重载函数可以被virtual修饰,也可以没有。与重载范围不同:隐藏函数和被隐藏函数在不同类中。隐藏函数和被隐藏函数参数列表可以相同,也可以不同,但函数名一定同;当参数不同时,无论基类中的函数是否被virtual修饰。

2023-10-07 16:19:13 37 1

原创 枚举和枚举类详解

枚举是一组具有相同类型的命名常量集合,通常用于表示一些特定的状态或选项等。而枚举类是一种特殊的类,它用于创建一个包含一组具有相同类型的命名常量集合的类型。枚举类中的每个成员都是该类的一个静态实例。

2023-10-07 14:23:23 119 1

原创 c++面经整理(二)c++内存管理

编程的本质其实就是操控数据,而数据存放在内存中。内存就是计算机的存储空间,用于存储程序的指令、数据和状态。根据变量的类型和作用域,内存分为几个区域,。

2023-10-05 19:24:56 91

原创 c++面经整理(一) c++基础

取决于处理器位数,32位就是 4 字节,64位就是 8 字节· 数。

2023-09-27 16:47:05 62 1

原创 大端小端详解

举个例子,比如数字 0x11 22 33 44(4个字节)在内存中的表示形式为:1)大端模式:低地址 -----------------> 高地址(数字高位存于低地址)可见,大端模式和字符串的存储模式类似。2)小端模式:低地址 ------------------> 高地址(数字高位存于低地址)小端口诀: 高高低低 -> 高字节在高地址, 低字节在低地址大端口诀: 高低低高 -> 高字节在低地址, 低字节在高地址。

2023-09-27 15:43:56 52 1

原创 序列化和反序列化一 --- rpc学习

序列化(Serialization)是将对象的状态信息转换为可以存储或传输的形式的过程。在序列化期间,对象将其当前状态写入到临时或持久性存储区。以后可以通过从存储区中读取或反序列化对象的状态,重新创建该对象。常用的protobuf:序列化:将数据结构或对象转换成二进制串的过程。反序列化:将在序列化过程中所产生的二进制串转换成数据结构或对象的过程。

2023-09-19 18:32:47 85

原创 智能指针和引用计数 -- c++学习笔记

如何来让指针知道还有其他指针的存在呢?这个时候我们该引入引用计数的概念了。引用计数是这样一个技巧,它允许有多个相同值的对象共享这个值的实现。引用计数的使用常有两个目的:简化跟踪堆中(也即C++中new出来的)的对象的过程。一旦一个对象通过调用new被分配出来,记录谁拥有这个对象是很重要的,因为其所有者要负责对它进行delete。但是对象所有者可以有多个,且所有权能够被传递,这就使得内存跟踪变得困难。引用计数可以跟踪对象所有权,并能够自动销毁对象。可以说引用计数是个简单的垃圾回收体系。

2023-09-18 16:09:54 277 1

原创 左值引用和右值引用--c++学习笔记

左值一般是可寻址的表达式,即可以获取和修改存贮位置的表达式;右值是一个值的临时存储结果,它不能被赋值。右值只能出现在赋值运算符的右侧,通常出现在表达式中。

2023-09-17 17:52:35 65 1

空空如也

空空如也

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

TA关注的人

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