C++11的智能指针是继可变模板参数,右值引用与移动语义以后又一个非常强大的特性。由于C++是没有GC的语言,程序员需要自己去管理堆上分配的内存。智能指针在我的理解看来实现了...
C++11的智能指针是继可变模板参数,右值引用与移动语义以后又一个非常强大的特性。由于C++是没有GC的语言,程序员需要自己去管理堆上分配的内存。智能指针在我的理解看来实现了...
这一层是面试的重点。在这里总结一下。 首先先看一下传输层位于哪一层。 TCP 可以看到传输层主要有UDP和TCP两种协议。我们先来看一下较为复杂的TCP协议。TCP与UDP不...
在创建一个类的时候C++会默认提供六个个函数:1.空构造函数;2. 空析构函数;3:赋值构造函数;4:拷贝构造函数;5.取地址符构造函数;6. 带const的取地址符。 需要...
虚拟内存在操作系统里一直是一个很重要的概念,之前学过的都差不多忘记了在这里记录一下。首先要理解虚拟这个词的含义。即在应用程序运行中看到的地址并不是真正的物理地址,而是经过操作...
之前学操作系统对这个流程一直不是很清楚,看面经有的问的涉及到了这个地方在这里总结一下。 首先我们要搞清楚中断涉及的对象,中断是由硬件和软件共同完成的。硬件负责发现中断和相关保...
看面经的是发现这个经常被问到,在这里记录一下。 首先要搞明白这个用户态和内核态作用的对象和他存在的意义。这个概念是针对CPU的状态的描述。在内核态可以执行一切特权代码,在用户...
1. 管道:管道是单向的、先进先出的、无结构的、固定大小的字节流,它把一个进程的标准输出和另一个进程的标准输入连接在一起。写进程在管道的尾端写入数据,读进程在管道的道端读出数...
今天在写程序的时候发现有类里有引用类型的时候并不能使用构造函数初始化,只能使用初始化列表赋值。在此总结一下。 构造函数其实分为两个阶段:(1) 初始化阶段 (2) 计算阶段。...
前两天看面经看到有人问到这个,顺便在这总结一下。 1. text段 存放二进制汇编代码 2. data段 存放已经初始化的静态变量和全局变量 3. bss段 存放没有初始化的...
1. 空class的size class A{}; 空class的size为1。每一个对象在内存空间里都有唯一的地址,如果size为0则没有办法分配地址。所以会给他1个byt...
虚表 虚表是和类对应的,即一个类共享一个虚表。虚表指针是和对象对应的,即每个对象有自己的虚表指针。虚表中存储的是对应虚函数的地址,并不会存储非虚函数。如果继承类并没有重写父类...
在看面经的时候发现这个经常被问到在这里记录一下。 静态链接:静态链接会将库中的代码直接复制一份到可执行文件中。优势是可移植性好,因为需要的代码段已经复制到了可执行文件里去。缺...
redis支持的数据类型: 1. String 实现为sds(simple dynamic string)对c语言的string进行了封装。对string空间进行了预分配,杜...
布隆过滤器经常用于判断一个数据是否存在的手段。由于在查询时间和空间使用率上有着优势被广泛使用。这里记录一下布隆过滤器的原理。 布隆过滤器用一个bit的vector来存贮结果,...
今天阅读代码的时候发现了一个神秘的写法, 一个长度为0的数组,趁着机会总结一下。 首先,值得注意的是这个技巧只在GUN C的环境下可以使用。其他环境下是不可以的。 零长度数组...
在学习CMU 的database的时候阅读项目的代码的时候发现了一个没有见过的写法。 查阅了资料以后发现这是 GNU C系列的一种语法。作用是可以更好的提醒编译器。这里写的相...
(1)数据库相关: redis,sql增删改查,事务隔离级别,索引相关,RTREE,不同引擎的区别。数据库的乐观锁悲观锁咋实现 (2)操作系统相关:锁的重入问题,线程池, I...
数据库索引的定义以及好处: 索引是对数据库表中一个或多个列的值进行排序的数据结构,以协助快速查询、更新数据库表中数据。 索引的优点 大大加快数据的检索速度,这也是创建索引的最...