一、八股
1.linux常用命令
Linux常用命令(面试题)_linux常用命令面试题-CSDN博客
常用命令、系统命令、打包命令、vim、开关机命令
2.socket通信调用api过程
TCP
UDP
3.进程和线程的区别
进程是系统进行资源分配和调度的基本单元,线程是cpu进行分配和调度的基本单元。
一个进程可以包含多个线程,但一个线程只能属于一个进程。
进程之间不会相互影响,但线程的崩溃会导致进程的崩溃,从而影响同个进程里的其他线程。
4.C++多态
5.快排思想、时间复杂度
选择数组第一个作为哨兵值,放在数组中间,小于该值的放数组左边,大于该值的放数组右边。
时间复杂度为O(NlogN)
6.select poll epoll
select和poll都是轮询,epoll采用红黑树查找,不会随着连接数目的增多导致查询效率降低。
红黑树是兼具搜索速度和增删快的优点的一种结构。
7.static关键字
修饰变量时:会在程序运行时一直存在,存放在静态存储区,局部静态变量作用域在函数体中,群居静态变量作用域在该文件中。
修饰函数:静态函数只在该文件中可以调用,不能在其他文件中进行调用。
修饰类方法:可以不用实例化,直接使用该方法。该方法内必须都是常量或者常函数。
8.vector插入
如果vector空间不够,会重新申请一块内存,空间是原来的1.5倍,然后再把数据拷贝过来。
9.lambda函数原理
【精选】C++进阶(八) :Lambda 表达式及底层实现原理【详解】_lambda表达式底层c-CSDN博客
10.指针和引用的区别
指针是地址,引用是别名;
指针可以为空,引用不可以;
指针一般8字节,引用根据引用对象确定;
指针可以多级,引用只有一级。
将类作为参数传递时用引用。
11.重载和重写的区别
重载是函数名相同,入参不同;重写是函数名和入参均相同,函数体不同。