|
|
【应用软件开发工程师】
1.自我介绍
2.八股拷打:
2.讲述一下继承和多态的应用以及区别;
3.讲述一下虚函数和虚表具体怎么使用的;
4.讲述一下做什么操作会导致虚函数修改,虚函数
什么时候会偏移?
5.STL容器介绍一下;
6.vector和list使用区别是啥?没有扩容概念)
7.扩容的时候,行为上有什么区别?(有坑,list
8.排序有了解吗?快排和堆排的复杂度是什么?最坏的情况是什么?二者的异同;
9.了解new/delete,malloc和free吗?解释一下
10为什么malloc就可以分配内存了,还需要new干嘛?(从生命周期和placementnew说);
11.做开发的时候,如果发现内存泄漏或者线程问题如何排查
12内存泄漏的话,怎么去进行解决(多点回答);
13.解释一下智能指针是什么呢?怎么进行使用的(shared prt说出来控制块和内存块,引出makesharded以及循环引用问题,进一步引出weakptr, 单独说unique ptr);
怎么设计一个线程池;
14.了解线程池吗?简述一下线程池,说明一下你
15.了解内存池吗?怎么是实现一个内存池?
16.进程和线程有什么区别呢?
17.为什么有了线程还要使用多进程呢?
18.项目的数据同步是怎么解决的呢?(锁、条件变量、原子操作、任务队列等等);
19.多线程可能会出现内存泄漏、越界、死锁,你用什么工具进行排查(gdb、gcc、attach、志);
20.死锁怎么解决;
21.HTTP和HTTPS区别是啥(80/443)
22.HTTPS的加密算法都有什么(AES)?
23.AES是对称还是非对称加密?
24.非对称加密算法都有什么(RSA/ECC);25.做数据库的话,有什么需要注意的点嘛(考虑字段类型与长度、主键唯一约束、索引、兼容
性);
26.锁优化具体是什么样子的?
27.数据库的高并发怎么解决的?(WAL并发读
写)
实现? (加密码/SQLCipher)
28.数据库有没有做加密处理?如果做的话能怎么
29.QT的话有用到什么?(QLibrary/信号槽机制)
30.信号槽的连接都有什么(3种);有没有用到Qtmodel?
31.direct和queue连接有什么区别?
32.内存调优是怎么做的?
3.项目深挖(极其深)
4.反问:
1.C++应用软件开发对接的部门都有哪些?
2.业务主要覆盖哪些方面?
3.作为主管,主要看重员工的哪些能力(对于校招
生就是学习能力、基础、团队合作)
一定要注意基础,感觉海康面试官还是挺注重基础的,up也只是转码选手,学的多,大家还是多学一点,有备无患,祝大家都能拿到offer!!!
|
|