腾讯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++工程师##面经#
全部评论
楼主最后去腾讯了么
1 回复 分享
发布于 2019-11-15 15:19
楼主,一面问题5:对端异常掉线那个,会出现什么情况,你怎么答的
点赞 回复 分享
发布于 2020-08-22 17:35
兄弟,你这都三面了咋还被挂了
点赞 回复 分享
发布于 2020-08-21 15:18
请问楼主对TEG的C++引力计划有了解吗
点赞 回复 分享
发布于 2020-03-17 10:09
太厉害了
点赞 回复 分享
发布于 2020-02-23 20:32
不是特别难
点赞 回复 分享
发布于 2019-11-16 00:31

相关推荐

01-16 14:47
已编辑
宁波诺丁汉大学 Web前端
发发面经积好运感觉这一次面试涵盖了前端大部分的八股了实习期间主要做了哪些事情?你是如何与产品和后端对接的?你在项目中主要使用 Vue 3 + TypeScript,那你觉得 Vue 开发中的“最佳实践”是什么?你刚刚也有提到“业务组件设计”,那你总结的组件拆分原则是什么?如果一个组件内部代码超过 200 行甚至上千行,但全是内部逻辑,是否还应该拆分?你怎么判断?你在 Vue 中是否会把组件拆得很细?拆分的边界在哪里?监控主要上报哪些类型的数据?是性能指标、错误日志,还是业务行为?具体监控了哪些性能指标?你是否了解 unhandledrejection 事件?知道如何监听 Promise 异常吗?如果让你自己实现一个前端的错误监控,你会怎么做?你提到做过性能优化,具体是从哪些方向入手的?你说有些页面内存占用高达 1.2GB,是怎么发现和定位内存泄漏的?你排查出的主要内存泄漏原因有哪些?你觉得常见的内存泄露都是什么原因导致的?除了你们项目中的问题,你还了解前端常见的其他内存泄漏场景吗?你是如何判断“合适的时机”去清理缓存的?你说对 TypeScript 比较熟练,那了解泛型(Generics)和工具类型(Utility Types)吗?在腾讯的项目中,团队是否强制使用泛型?你们常用哪些工具类型?你用过 Pick、Omit、Partial、Record 工具类型吗?有没有自定义过高级类型?你了解“依赖注入”这个概念吗?你在校内项目中用 WebSocket 替代了长轮询,为什么做这个技术选型?你是如何实现断线重连机制的?断线期间丢失的数据,是如何同步回来的?是通过记录断开时间戳,让后端返回这段时间内的增量数据吗?你能解释一下 JavaScript 的事件循环(Event Loop)吗?宏任务(Macro Task)和微任务(Micro Task)的执行顺序是怎样的?比如 setTimeout、Promise.then、queueMicrotask 的执行先后?UI 渲染发生在事件循环的哪个阶段?是在宏任务之后吗?渲染会阻塞 JS 主线程吗?或者说,JS 执行会阻塞渲染吗?你知道 Promise.all 和 Promise.allSettled 的区别吗?请手写实现一个 Promise.allSettled 方法。需要处理所有 Promise 的 settled 状态(fulfilled / rejected)返回格式是否符合规范?你刚才代码里用了 fulfilled 和 rejected 字段,这是参考了什么规范?(暗示 Promise A+ 或 ES 规范)你了解 Promise A+ 规范吗?感觉问得比较多和杂,我基础也确实不算很好,有不少都没答上。甚至没有考我算法题
nlhxq🌱:哥,你怎么还在找实习啊
实习与准备秋招该如何平衡
点赞 评论 收藏
分享
评论
5
159
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务