2022.2面
C++:
1、虚函数定义、纯虚函数、虚函数表;
2、理解多态、虚析构函数作用、static关键字作用、const用法;
3、C++11 新特性:lambda表达式、auto、智能指针;
4、udp和tcp区别;tcp过程;为什么tcp三次握手、四次挥手;为什么tcp会毡包,udp不会;
设计模式:单例、原型、工厂(思想及写工厂模型代码);
生产者消费者代码(要求线程安全,饿汉型安全,懒汉型不安全);
线程安全的方法有哪些:加锁(信号量:mutex互斥,一个互斥量只能用于一个资源的互斥访问,它不能实现多个资源的多线程互斥问题;信号量可以实现多个同类资源的多线程互斥和同步。
)
stl常见容器:
vector,数据结构数组,支持随机访问,remove、erase用法区别
list,数据结构双向循环链表
dequeue,双端队列
queue,队列
set,集合,数据结构红黑树,键值对一致
map,数据结构红黑树,key-value键值对
迭代器:iterator
数据结构:
5、排序算法时间、空间复杂度、思想(快排、冒泡);堆和栈区别;怎样判断链表有无环;分治算法、动态规划、贪心算法
计算机网络:
6、http与tcp区别;
Qt:
7、信号槽理解;一个信号对应多个槽、多个信号对应一个槽执行顺序;connect第五个参数作用:autoConnection、DirectConnection、QuenedConnection...
8、是否封装过qss;用过qml;
9、多线程两种用法;OpenGl实现原理;
10、SQLite和SQL servre及 mySql区别:SQLite是存储型数据库,后二者属于关系型数据库;
用法上有什么区别?
数据库:
10、增删改查关键字:insert delete update select