目录
一面
二面
综合面试(HR面)
总结
一面
1. 自我介绍
2. 你了解过C++的三大特性吗?
3. 你刚刚说道C++中的对象,那你能介绍一下什么是多态吗?
4. 你刚刚说道虚表,那你能介绍一下虚表内部存放了什么内容吗?
5. 你说道虚函数,那构造函数和析构函数能够设置为虚拟函数?为什么他们能够设置为虚函数,或者为什么他们不能设置为虚函数?
6. 介绍一下什么是内存泄露?
7. 你有什么方法,或者工具能够发现内存泄露?
8. 你说一下C语言和C++的区别?
9. 介绍一下C++11里面增加了哪些新特性?
10. 在STL库中有很多的容器,你介绍一下,你常用的容器有哪些?
11. 介绍一下vector和list分别用在哪些场景?
12. 你知道进程和线程有什么区别吗?
13. 多进程场景下资源争夺的问题如何解决?
14. 你刚刚说道共享内存,那你能详细介绍一下吗?
15. 进程之间通信,除了共享内存外,还有哪些?
16. socket可以实现同一主机上不同进程之间的通信吗?
17. linux上有什么是你常用的命令?
18. 看你的项目中用到了 I/O多路复用技术 select,除了 select以外,你还了解其他的技术吗?
反问环节。
今天的面试就到这里,三天之后你可以在你的个人中心看到面试结果。
二面
1. 我们直接进入主题,我看你简历里面写了两个项目,你对哪个比较自信?
2. 那你介绍一下,在这个项目中你用哪些技术。
3. 你的项目里面的服务器最高能够承载多少的连接数量?
4. 你用的是select网络模型,如何承载这么多的网络连接的?
5. 除了select以外,windows下还有哪些多路复用技术?
6. poll和epoll你等会介绍,你先说一下,windows下有哪些?
7. 那你介绍一下poll和epoll的优势?
8. 在10000万个连接下,select、poll和epoll哪个处理效率更高?
9. 你刚刚说到了多线程,那你说一下你怎么使用多线程,用了之后有什么好处?
10. 多线程处理数据,会产生什么问题?
11. 会出现数据不一致?这个你解释一下。
12. 你说的这个是多线程读一个变量的场景,我想问一下,可不可以让多个线程去处理一个fd的数据?
13. 你觉得可以,那多个线程去多一个fd的数据,不是会出现数据包的乱序吗?
14. 你这个是解决乱序的方法,假设不加锁,多个线程读一个fd会出现什么问题?
15. 重组?你怎么重组?
16. TCP协议在传递数据包的时候,会不会乱序?
17. TCP传输数据包会有发送缓冲区和接收缓冲区,可能会出现粘包的现象,你知道吗?
18. 你解释一下,为什么会出现粘包现象?
19. 为什么默认情况下,要等发送缓冲区满了才发送数据,来一个数据包就发送一个数据包不可以吗?
20. 你说会出现性能消耗,那你说一下,哪方面的性能消耗?
21. 那你介绍一下你的项目中用了什么锁?
22. 嗯嗯,自解锁是一种编程的技巧,避免死锁。但是,我想问的是,你了解哪些锁?
23. 互斥锁了解过吗?
24. 这几个锁之间有什么区别?
25. 互斥锁和读写锁的应用场景?
26. 自旋锁和互斥锁有什么区别?
27. 自旋锁在循环等待的时候,是不是会比较消耗CPU资源?
28. 那自旋锁一遍用于什么场景呢?
29. 你说你的项目中有用到生产者消费者模型,这个模型有什么好处?
30. 处理这个模型,你还了解哪些设计模型?
31. 能不能介绍一下其中一个工厂模式?
32. 你有没有将工厂模式用在你的项目中,实际的应用中?
33. 你有没有了解过数据库?
34. 你了解过哪些数据库?
35. 你是学习过理论,还是有用过?
36. 那你介绍一下他们的应用场景?
37. 那redis的数据存放在哪里呢?
38. redis的数据存放在内存中,那它重启数据会不会丢失?
39. redis的持久化操作有哪些?
40. 它们一般是分开用,还是结合在一起用?
41. 你说一下它们结合在一起用的场景?
42. 在做RDB备份的时候,后面又有新的数据,会不会出现数据不一致?
43. 在做AOF备份的时候,重启数据库,会不会出现数据不一致?
44. redis能够承载多少的并发连接?
45. 那你说一下redis是多线程,还是单线程?
46. 那你说一下为什么redis要使用单线程?
47. 那你平时在windows和linux下开发哪个用的比较多?
48. linux下开发,你用的是什么开发工具?
49. 调试工具,内存泄露检测工具呢?
50. 你如何避免内存泄露?
51. 你的程序在运行过程中出现了崩溃,你会如何检测?
52. 我说的是运行时奔溃,不是你在调试是奔溃。(我:我会查看日志信息,查看错误的原因)
53. 运行奔溃了,来不及记录日志呢?而且很多时候也不会频繁记录日志呀。
54. 你这边平时有没有经常访问的网站有哪些?
55. 那你平时有关注开源项目吗?开源项目的名字是什么?
56. 那你有自己的博客吗?会不会把自己的学习笔记分享出来?
好,那今天的面试就到这里。
好的,谢谢面试官。
感谢你参加 CVTE的面试。
综合面试(HR面)
1. 入职时间?
2. 可以实习多久?
3. 工作日可以接受的工作时长?
4. 目前面试了多少家公司?
5. 未来想要在哪家公司?
6. 比较想去的公司有哪几家?
7. 想要进大厂的话,你对你的技术有信心吗?
8. 你的不足之处在哪里?
9. 你在学校有做项目吗?
10. 项目的难点是什么?
11. 你是怎么解决这些难点的?
12. 平时和班上的同学,和导师的交流多吗?
13. 你期望的实习薪资和转正薪资分别是多少?
14. 最低能够接受的转正薪资是多少?
15. 感觉你对最低薪资不太确定,是什么原因?
16. 那你觉得C厂怎么样呢?
17. 你未来3年、5年和10年的计划是什么?
18. 工作地点在黄埔科学城能接受吗?
19. 平时会将自己学习的记录分享到网上吗?
20. 既然你有做笔记,为什么不去分享呢?
21. 你家里人对你的工作有什么期望吗?
面试完第二天上午,显示综合面试通过,目前全部面试通过。
下午,offer call。
晚上,收到录用通知的邮件。
总结
面试总体流程,体验感觉挺好的。
技术面试,有想不起来的地方,面试官会引导你去思考。
HR也特别的负责,有疑惑都可以问。
作者:Z_cheng
链接:https://www.nowcoder.com/discuss/977651?type=all&order=recall&pos=&page=1&ncTraceId=&channel=-1&source_id=search_all_nctrack&gio_id=70202115A34E3A3EE8C70649D7FAF8D7-1660049568441
来源:牛客网(侵删)



