自我介绍:学校、成绩、项目、实习
面试官迟到10min
1、在实习过程中有接触过QT相关的吗?听过,没有用过。
2、主要是写纯c的代码吗?c和c++都有。
3、实习内容?balabala(提了性能优化)(需要再精简,清晰)。
4、性能优化?balabala。
5、协程库,自己封装的?嗯,是的,自己写这个项目主要是为了学习c++新特性。
6、这个项目主要的工作内容?对c++20协程封装,事件循环,封装异步任务。(这个需要好好总结,每次回答的都不太好)
7、协程怎么用的?异步场景。网络io,对已连接socket fd,对其读,co_await,将协程阻塞,然后可以运行其他协程,当fd可读,在唤醒协程继续执行。如果用线程,就需要将fd加入到io复用监听,然后注册回调函数,事件发生,调用回调函数。相对来说,协程写这些异步代码会比线程简洁。
8、协程对比线程的优点?更轻量级的线程,共享资源。切换开销大。内核态。切换页表。(好好总结,问过好多次了,但是答不好)
9、开发角度,标准库的协程和线程哪个开发效率高?线程。(不知道怎么回答)
10、提到线程,池化概念,线程池,内存池,有了解过吗,为什么做池?需要的时候再申请,就会比较慢,提前创建就会减少这个时间的开销。线程池(说了一下,从任务队列取任务)。
11、智能协同,作过仪表盘?这个只是运用已有的功能进行配置。再说了一下这个项目的大概工作。偏向运维。(他可能更想听到是自己作过界面)
12、http server?尬笑,经典项目。人手一个(是的)
13、mysql和redis都用过吗?redis没用过,扯了一下,说是一个内存数据库
14、mysql和redis的区别?一个轻量级一个重量级,难顶。(回去恶补)
15、视频编解码,渲染,opengl?都没有接触过,苦笑。
16、c++基础,三大特性?抽象、继承、封装、多态。第一个记错了(继承还是封装,他说很基础)
17、静态多态?动态动态?函数重载(我一直说成函数加载)动态多态(虚函数,动态类型、静态类型,基类指针或者引用指向基类对象或者子类对象)
18、怎么理解静态和多态?(一个编译时确定,一个运行时确定)
19、虚函数和纯虚函数区别?抽象类,不能实现,抽象类不能实例化。
20、友元使用过吗?知道,说了一下,但是很少用到。
21、explicit关键字?单参数构造函数,避免隐式初始化。
22、哈希表?最简单就是一个数组。key对应数组下标。哈希函数,哈希桶、哈希碰撞。
23、排序算法,评判标准?时间复杂度、空间复杂度、稳定性。
24、设计模式:单例、工厂、观察者
25、观察者?b观察a,保存a的指针或者引用
26、有没有写博客的习惯?有
27、了解客户端工作?QT,界面。本科用过。
寄,反问:略
总结就是不匹配,基础问题回答烂。