1. 自我介绍(要说主修课程、项目介绍)2. 一个数组插入删除的复杂度:中间头部:o(n)、尾部o(1)3. 扩展分配新的存储空间,新内存和原来内存不连续:重新分配:realloc、增量分配:用new新增存储空间4. malloc和new的区别5. cpp是多继承还是单继承6. java为什么不支持类的多继承?避免菱形继承7. go中为什么不支持类的多继承也不支持接口的多继承。8. c++中多继承的类?iostream,分别是istream、ostream容易引起菱形继承9. 长方形是一个类,正方形是一个特殊的类,请问正方形可以继承长方形的类吗?更适合用什么?组合,不要继承10. 优先队列用什么实现?数组、链表都有缺陷、用堆实现11. 大顶堆小顶堆都如何实现的12. 如何实现双端优先队列?用一个大顶堆,一个小顶堆13. 双端优先队列用大小顶堆实现的话,如何比较新插入的元素?用平衡二叉树,插入后需检查两个堆的大小差是否超过 1,若超过则调整:14. 完全二叉树是怎么定义?15. 对象的序列化和反序列化是什么?变成字节流和由字节流变成对象,用json存储16. json能存储哪些数据类型?17. 一个环形链表中的数值怎么实现序列化和反序列化:遍历链表,用json存储节点数据,循环引用处特别标记18. json怎么存储环形链表的数据?用一个数组存储所有节点的 ID、值和 next 引用。19. 好几个连续环怎么存储?向图天然支持节点间的任意指向关系(包括循环和嵌套)。核心思路是将每个节点视为图的顶点(Vertex),节点间的`next`指针视为有向边(Edge),并通过额外信息标记环的边界和嵌套关系。20. 项目中reactor和preactor的区别21. linux平台下看一个日志只看最尾端的几百行是什么命令?tail22. tail命令是怎么实现的?用c++语言怎么实现?应先获取文件大小、在将指针移到日志末尾,反向读取至换行符。23. 如何反向读取?24. 五大原则solid?