腾讯TEG C++后端开发 面经 (补)
暑期在深圳实习完直接去TEG面试的,应该是 8.20 号附近~现在来补面经
一面:90 min
一面是一个挺帅的技术小哥,问了好久好久的基础知识
1. UDP 和 TCP 的区别?分别适用什么场景?
2. TCP 建立连接和断开连接的过程?如果 server 没有 accept,连接会怎样?
3. UDP bind 和 connect 有什么用?
4. write 和 sendto 有什么区别?
5. 对端异常掉线,本端调用 write 函数向 socket 写入数据,会出现什么情况?
6. nagle算法了解吗?
7. shutdown() 和 close() 有什么区别?如何优雅关闭 socket ?
8. C++多重继承的对象模型?菱形继承的对象模型?
9. map 和 unordered_map 的区别?各自适用的场景?
10. 介绍一下红黑树
11. *.h 文件中可以写类的实现吗?编译库文件的话可以把类的实现写在头文件中吗?
12. 宏定义函数写过吗?为什么有些宏定义中喜欢用do {} while(0) ?
13. C++ 模板是怎么实现的?
14. C++ 11 了解多少?
15. 移动语义和完美转发介绍一下?
16. 完美转发怎么实现的?什么原理?
17. 进程和线程什么区别?线程有哪些独立的资源?
18. 线程的状态都有哪些?
19. 是否了解协程?讲一讲协程的原理
20. 无锁编程接触过吗?介绍一下cas
21. linux 的虚拟内存是什么?
22. 分段和分页有什么区别?
二面:30 min
二面面试官对基础知识没问太多了,都是一些比较开放的问题
1. 详细介绍一下实习的内容以及负责的项目
2. 如何检测内存泄露?不使用 valgrind 类似的工具
3. 如何避免内存泄漏?
4. C++ 11 智能指针用过吗?需要注意哪些?
5. stl vector push_back() 的复杂度?扩容机制?为什么要 2 倍扩容?
6. 有没有写过测试函数?假如让你写一个测试程序用来测试vector,你会从哪些角度去考虑?
7. C++ stl 的内存管理是怎么做的?
8. 有没有写过线程池?如何实现一个高性能的线程池?你能想到哪些方面?
三面:15 min
本来觉得二面问题比较开放,结果三面更开放。。。
1. 实习过程中对 TAF 有多少了解?TAF 哪里需要改进?(他的意思是你只有充分搞懂了一个项目,你才知道这个项目的缺陷在哪。。。)
2. 在实习过程中学到了哪些知识?
3. 看过哪些源码?挑两个最熟悉的讲一下框架和原理,为什么这么设计?
其实感觉腾讯确实是很open的
对一些技术问题希望能听到一些不一样回答
只可惜不是微信啊啊啊啊啊啊啊
只想去微信怎么办
#腾讯##校招##C++工程师##面经#