- 博客(18)
- 收藏
- 关注
原创 设计模式知识总结
类CGarbo被定义为Singleton的私有内嵌类,以防该类被在其他地方滥用。程序运行结束时,系统会调用Singleton的静态成员Garbo的析构函数,该析构函数会删除单例的唯一实例。使用这种方法释放单例对象有以下特征:在单例类内部定义专有的嵌套类;在单例类内定义私有的专门用于释放的静态成员;利用程序在结束时析构全局变量的特性,选择最终的释放时机;使用单例的代码不需要任何操作,不必关心对象的释放。
2024-04-15 14:43:17 947 1
原创 Linux知识
Sector :⽂件储存在硬盘上,硬盘的最⼩存储单位叫做 “扇区”(Sector)。每个扇区储存 512 字节(相当于 0.5KB)。block :操作系统读取硬盘的时候,不会⼀个个扇区地读取,这样效率太低,⽽是⼀次性连续读取多个扇区,即⼀次性读取⼀个 “块”(block)。这种由多个扇区组成的 “块”,是⽂件存取的最⼩单位。“块” 的⼤⼩,最常⻅的是 4KB,即连续⼋个 sector 组成⼀个 block。inode :⽂件数据都储存在 “块” 中,那么很显然,我们还必须找到⼀个地⽅储存⽂件的元信。
2024-04-12 21:46:38 1031
原创 testWebserver所有类分析
为什么要这么继承:因为EventLoop在别的类中会被shared_ptr管理,并且在loop()函数中被作为参数参与到wpChannel_的构造函数中去。
2024-04-12 16:50:47 417
原创 C++内存管理
内存对⻬是指数据在内存中的存储起始地址是某个值的倍数。在C语⾔中,结构体是⼀种复合数据类型,其构成元素既可以是基本数据类型(如int、long、float等)的变量,也可以是⼀些复合数据类型(如数组、结构体、联合体等)的数据单元。在结构体中,编译器为结构体的每个成员按其⾃然边界(alignment)分配空间。各个成员按照它们被声明的顺序在内存中顺序存储,第⼀个成员的地址和整个结构体的地址相同。
2024-04-01 16:43:00 821
原创 MySQL
由于B+树的叶子节点形成有序链表,可以非常高效地执行范围查询操作,例如大于、小于、区间查询等。更低的树高度:B+树相对于B树来说,具有更低的树高度。这是因为B+树的关键字全部存储在叶子节点中,非叶子节点只包含关键字范围和指向子节点的指针。由于B+树的叶子节点形成有序链表,可以按顺序访问数据,例如排序、分页和顺序遍历等操作。内存占用:B+树的节点大小比B树相对较小,可以容纳更多的节点在内存中,从而提高了缓存的效率。B+树对于大规模数据集的索引具有较好的扩展性,能够高效地处理大量的数据和高并发访问。
2024-03-21 21:50:21 287 1
原创 c++新特性
在 C++ 或者 C 语言中,一个表达式(可以是字面量、变量、对象、函数的返回值等)根据其使用场景不同,分为左值表达式和右值表达式。确切的说 C++ 中左值和右值的概念是从 C 语言继承过来的。左值的英文简写为“lvalue”,右值的英文简写为“rvalue”。很多人认为它们分别是"left value"、“right value” 的缩写,其实不然。
2024-03-19 22:23:27 474
原创 C++面向对象
访问修饰符C++提供了三个访问修饰符:public、private和protected。这些修饰符决定了类中的成员对外部代码的可见性和访问权限。public 修饰符⽤于指定类中的成员可以被类的外部代码访问。公有成员可以被类外部的任何代码(包括类的实例)访问。private 修饰符⽤于指定类中的成员只能被类的内部代码访问。私有成员对外部代码是不可⻅的,只有类内部的成员函数可以访问私有成员。protected 修饰符⽤于指定类中的成员可以被类的派⽣类访问。受保护成员对外部代码是不可⻅的。
2024-03-14 16:07:50 360
原创 C++基础
预处理阶段对源代码文件中包含关系(头文件),预编译语句(宏定义)进行分析和替换,生成预编译文件。编译阶段将经过预处理后的预编译文件转换成特定汇编代码(编译原理相关,词法分析,语法分析,语义分析等),生成汇编文件。链接阶段将多个目标文件及所需要的库打包连接成最终的可执行目标文件(或库文件以供其他程序使用预处理器的主要作用就是通过预处理的内建功能对一个资源进行等价替换,最常见的预处理有: 文件包含,条件编译、布局控制和宏替换4种。简单来说:gcc 和g++都是 GNU组织的一个编译器,都可以编译C代
2024-03-12 19:09:27 829
原创 计算机网络知识总结
OSI(Open System Interconnection)模型,即开放式系统互联,是国际标准化组织(ISO)制定的⼀个⽤于计算 机或通信系统间互联的标准体系,旨在将计算机⽹络通信划分为七个不同的层级,每个层级都负责特定的功能。每 个层级都构建在其下⽅的层级之上,并为上⽅的层级提供服务。七层从下到上分别是物理层、数据链路层、⽹络层、传输层、会话层、表示层和应⽤层。可以简称为“物数⽹传会表应”。
2024-03-12 14:32:25 830
原创 C++ STL
是什么容器(Container)各种数据结构,如vector、list、deque、set、map等,⽤来存放数据,从实现⻆度来看,STL容器是⼀种class template。算法(Algorithm)各种常⽤的算法,如sort、find、copy、for_each。从实现的⻆度来看,STL算法是⼀种function template。迭代器(Iterator)
2024-03-09 19:55:39 849
原创 webserver项目知识总结
使用 C++ 11 编写去除 muduo 对 boost 的依赖C++11 特性std::function和std::bindboost库是muduo网络库依赖的第三方库。在c++11标准出来之后,新增了std::function和std::bind,功能与boost::function和boost::bind相同。因此就可以用标准库中的函数代替boost库中的函数,以此去除对boost库的依赖。智能指针线程Thread中std::shared_ptr<std::thread>
2024-03-08 22:27:09 978
原创 算法题总结
动态规划一个字符或一对字符是两种最小回文串形式,针对每个字符的这两种最小回文串,向外扩展,找到最长回文串主函数一个for循环,循环内两个pair expandFromCenter(string &s, int left, int right)函数,第二、三形参是起始左右限,返回参数是从该位置得到的最长回文串的左右限。
2024-03-07 08:22:29 392
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人