2020年腾讯实习生C++面试题&持续更新中(2)
hello,大家好~
我是好好学习天天,天天编程的天天,一个每天都死磕技术,及时分享的技术宅~
昨天分享的题目不知道大家是否看过了,以后我计划每天都更新一些互联网公司的面试真题,后期搞一个合集。
好了,接下来进入正题啦。
腾讯2020年实习生面试题分享
一面
- 虚函数、C++ 内存模型、深拷贝(拷贝构造函数、拷贝赋值函数)
- C++98/11/14/17相关的特性、智能指针
- 内存泄漏问题(new/delete, malloc/free, Valgrind)
- 平常怎么调试(strace/gdb/core dump)
- 怎么检查服务器网络问题(ping/netstat/tcpdump)
- 浏览器输入URL过程(DNS/HTTPS/TLS/HTTP/TCP/UDP/IP/ARP)
- Redis源码(事件循环ae,单线程IO多路复用,Redis数据结构实现)
- 数据库的索引(MySQL InnoDB索引、B+树)
- MySQL慢查询分析(慢查询日志、explain、索引优化)
- 设计模式(单例的懒汉/饿汉、线程安全问题,装饰器模式,观察者模式,适配器模式、策略模式、迭代器模式)
- Nginx网络模型(多进程、Linux epoll、freeBSD kqueue)、负载均衡原理和策略、静态文件服务器、OpenResty(这部分都没特别深入)
- 数据库一致性问题(cache/DB的读写一致性,2PC)、数据库容灾(redolog/binlog、业界的解决方案)
二面
- 说说体现C++的关键字有哪些?
- 说一说 static 与 const 区别?
- 讲一讲多态,虚函数?
- 讲讲C++容器 vetcor map set list 底层实现?
- 红黑树底层实现
- udp 与 tcp 区别特点
- 三次握手 与 四次握手
- 四次握手中如果close_wait状态太多 会怎么样?
- 讲讲堆排序
三面
- 实验室方向
- 进程和线程
- 线程上下文切换为什么比线程开销小
- 如果两个进程都是单线程,这时怎么进行线程切换?(面试官意思可能是不同进程之间的线程怎么切换)
- 进程间通信方式
- 线程同步
- 为什么进程间需要单独的通信方式,而线程不需要?
- 什么是死锁?
- 如何预防死锁?
- select和epoll区别(底层原理)
- TCP,UDP区别
- Nagle算法
- 不用Nagle与用Nagle的好处分别是什么
- HTTP下载一个文件时,为什么速度刚开始时很慢,慢慢的才会达到一个封顶(完全懵逼)
- HTTP的put和get有什么区别,在协议层面上有没有了解过(没有)
- TCP三次握手
- 什么是半连接状态
- TCP为什么可靠?
- UDP怎么样可以实现可靠传输?
- 用什么语言?C++,然后开始问C++相关的
- 虚函数如何实现?
- 析构函数为什么要是虚函数,构造函数可以是虚函数吗?为什么?
- 友元类
- 为什么要做内存对齐?
- 深拷贝,浅拷贝
- map,unordered_map底层,效率
- 哈希冲突怎么解决
- 二叉树中寻找两个节点的公共父节点?
- 二叉树深度
- 数组里的第2大元素(堆,冒泡思想)
- 单向链表的倒数第n个节点
- 判断链表中是否有环
以上就是记录的一次2020年腾讯C++实习生面试真题了
天天希望不遗余力的给大家分享有价值的干货,希望大家也可以文章的底部点个赞咯。