秋招告一段落了,分享一波我的C++面经

TPLINK(offer,已拒)

一面

select和epoll区别
new和malloc区别
static的作用
cpp程序怎么调用c代码
什么是条件变量?
什么是字节对齐?
什么是死锁?
三个线程循环打印abc,怎么实现

二面

根号13,保留2位小数,不允许进行浮点计算
一个只有括号的字符串判断括号是否合法
20个升序排列的数组各500个数,求最小的500个数

三面

聊人生聊理想

Shopee(offer)

一面

哈希表是如何解决高并发的?
B+树以外有哪些索引?
数据库事务解决什么问题?举例说明
MVCC的实现原理
head get post
301 302 500状态码
https为什么不一直用对称加密?
什么语言支持协程
shell命令查看文件、文件夹大小
析构函数能抛出异常吗
map和vector的erase分别返回什么
redis的过期删除策略什么
rpc框架
python的GIL

二面

http的结构,大小如何确定?没有content-length字段呢?http2.0了解吗?
redis有哪些应用场景?做定时器的原理?
二叉树找两个节点的公共父节点,说思路
快排当有很多重复数时怎么优化
hash冲突除了链表还有什么方法?开放寻址法有什么缺点?
A中5个球,B中7个球,甲乙两个人每次至少取一个球,且只能取同一个箱子的球,问先手是否有必胜策略?

猿辅导(offer)

一面

http有哪些请求方式?get和post区别?安全性?哪种攻击post安全get不安全?
python中a, b = b, a的底层是怎么实现的?
B+树和B树在数据库底层中的优劣?
SQL查询中怎么知道是否用到了索引?有一个idx_a_b_c的组合索引和id的主键,执行where a=1 and b=2时怎么访问索引的?
索引下推是什么?
ACID分别是什么?在innodb引擎中怎么实现的?
innodb的默认隔离级别是什么?会有什么问题?
MySQL中有哪些死锁?
select … for update和for sharemode的区别?
两道算法题,一道求最大岛屿面积,一道求BST的第k大

二面

两道力扣原题,戳气球(hard)和对角线遍历(medium)

三面

聊项目,场景题,具体忘了

招银网络(offer,已拒)

一面

长度为100的字符数组做strlen和sizeof有什么区别?
int, double, int*, bool分别怎么与0做对比?两个double怎么比大小?(不就直接比吗……)
野指针是什么?哪些情况会产生?
如何定位内存泄漏?哪些情况会产生?
虚函数有哪些应用场景?
异常处理的过程?
从浏览器键入一个url的过程?
手写单例模式
手写无序数组找第k大的数

二面

C/S和B/S的区别
main函数之前会做什么
STL哪些情况会迭代器失效
线程安全是什么
new的过程中哪些地方会抛出异常
内存泄漏是什么,有哪些场景
虚函数可以是inline吗?编译器是怎么处理inline函数的?
怎么访问类的私有变量?公有函数访问私有变量违背了C++编程的什么原则?
进程间通信的方式?共享内存有什么缺点?
软链接和硬链接的区别?
shell中$命令是什么含义?
字符设备是什么
mysql默认的隔离级别是什么?有什么坏处?
mysql有哪些日志?
sql查询很慢有哪些原因?
数据库连接池是什么?
手写二分查找

三面

聊项目

字节跳动(offer,烂白菜)

字节的面试题是我秋招以来最变态的,可能面评也不是很好,最后给了个烂白菜价,也是自己比较菜,认了

一面

http和https的区别?https怎么建立连接的?哪个更快?慢的瓶颈在哪?
说一下IO多路复用?select和epoll区别?水平触发和垂直触发区别?各自的应用场景?
同步和异步的区别?单线程异步和多线程同步各自的适用场景?单线程异步程序怎么调用多核处理器?
说一下cacheline
spinlock和mutex区别?
b+tree原理?数据库加锁是怎么加在b+tree上的?如果要提升性能应该怎么办?锁的退化
ACID是什么?隔离级别有哪些?分别怎么实现的?
对CAP的理解
算法题:输出二叉树所有根节点到叶子节点的路径

二面

deque的实现原理?默认每段连续内存有多少空间?和vector的异同?优势和缺陷?
string的实现原理?怎么处理内存碎片的?
hashmap的实现原理?当未达到装载因子,哈希冲突又较多时,怎么优化的?
什么是右值引用?怎么实现完美转发的?
虚拟内存和物理内存
树有几种遍历?前中后序遍历和层序遍历各自适用的场景?举具体例子
shell命令,怎么筛选第n行第3列的文本
算法题:给定一个数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。candidates 中的每个数字在每个组合中只能使用一次,所有数字(包括目标数)都是正整数,解集不能包含重复的组合。

三面

neo4j底层是怎么存储的?match的时候是怎么做模糊匹配的?在btree上具体怎么检索的?
shared_ptr怎么实现的?类里面有哪些变量?怎么设计确保线程安全?
条件变量是什么?举个使用的例子
基于条件变量手写一个生产者-消费者模型,生产者不断往队列里push int数据,消费者不断从队列中pop int数据,将其自增后打印出来

四面

虚拟地址和物理地址怎么对应的?页表机制中TLB做了什么?MMU做了什么?
STL中怎么重新分配内存?一个容器的详细构造过程?
ARP请求的详细过程?
算法题:用条件变量实现读写锁(之前从来没准备过,基本乱写的,最后能过也算是个奇迹吧)
场景题:设计一个系统,对10万台机器中有一些按行存储的错误信息,如何存储到数据库中?

百度(一面挂)

全程easy题,算法题也是easy难度,就没记,一面完没多久状态就挂了,不太懂

阿里(offer,白菜)

一面

数组和指针区别
struct和class区别
对虚函数的理解
继承和多态的区别
红黑树、AVL、hash表、并查集的性质、原理
dp有哪些应用场景?状态压缩?
隔离级别有哪些?分别指什么?
进程和线程区别
用过线程池吗
写过哪些多线程
水平触发和边沿触发
责任链模式和观察者模式?单例模式的饿汉方法是什么?

二面

手写AVL树

三面

聊项目

四面

聊项目
手写抢红包算法

CVTE(二面挂)

一面

TCP粘包?
如何使UDP变得可靠?
Qt的信号是什么?槽是什么?底层定义是宏或是关键字还是什么?
怎么在程序里创建线程?子线程中发出信号,其关联的槽在哪个线程执行?
C++生成可执行程序的过程
malloc和new
C++多态,虚函数
虚表指针什么时候创建,使用虚函数需要注意什么
重载的条件?C语言为什么没有重载
智能指针,shared_ptr和uniqe_ptr底层原理
怎么阻止类赋值
C++进程内存

二面

HTTP怎么实现长连接的
TCP和UDP首部有哪些字段
HTTP和TCP保活的区别
TCP和UDP可以占同一端口吗
select和epoll的区别?select为什么开销大?select返回的可读条件是什么?
Flask用的select还是epoll
shutdown和close函数的区别
水平触发和边沿触发区别
Qt怎么实现多线程
多客户端并发地请求单个服务,怎么设计
线程池怎么设计,如果有1W的并发量,服务器需要开多少线程?(考虑select和epoll)
虚假唤醒是什么
react模是什么
拥塞控制有哪些?快重传是什么?
智能指针有哪些?weak_ptr怎么避免循环引用?智能指针怎么指向数组?删除器是什么?
构造函数能抛出异常吗?构造失败怎么做通知?
怎么让iterator失效?
交换字符串的两片区域,要求O(n)时间,O(1)空间

斗鱼(二面完主动放弃)

一面

单参数的构造函数为什么不被推荐?
map除了红黑树还能用什么实现?异同?
多进程和多线程的区别?应用场景有何不同?
线程的调度算法有哪些?优缺点分别是什么?
怎么应对缓存淘汰?

二面

右值引用
同类对象按字节交换会出什么问题?
uniqe_ptr用作lambda时用什么捕获?
对模板元编程熟悉吗?(不熟悉)

腾讯(反复鞭尸最后还是挂了)

CDG

一面

服务端接收不了客户端的请求,如进程挂了,操作系统会给客户端回复一个什么包?客户端应对这种异常做什么处理?
TCP怎么实现可靠传输的?
TCP怎么实现流量控制的?
智能指针有哪几种?shared_ptr和unique_ptr的区别?在编译期还是运行期做校验?
C++11有哪些新特性?对泛型的理解?
对右值引用的理解
登成绩系统,怎么保证一个学生的成绩不会被写入两次?

二面

垂直、水平跳表
数据库读写瓶颈

天美

一面

指针和引用
vector原理
静态和动态内存分配
http头部字段
CTI程序
协程
进程间通信?适用场景?
redis数据类型
对docker的理解
SQL注入
epoll和select的区别

二面

GET和POST区别
HTTP2.0
unordered_map线程安全吗

不知道什么部门

malloc、free、new、delete的区别。
static的应用场景,类内static如何访问?
函数的默认参数在声明还是定义时给出?同一个函数的同一个默认参数可以有多种吗?
类的默认生成函数有哪些?
类对象的值传递和引用传递区别?
智能指针之间的赋值方式有哪些?分别是浅拷贝还是深拷贝?
Linux用的多吗?抓包用过吗?
服务器某进程TCP连接到一个恶意客户端,怎么在进程内断开与该客户端的连接?不能用别的进程做,不能kill该进程
UDP的包头是怎样的?
36辆赛车只有6个赛道,怎么最快找出前3?
怎么找出数组中第10的数?快速选择细节?

网易雷火(一面挂)

自旋锁
60人中有2个牛人,等分成3队,2个牛人在同一队的概率多大?
B树怎么插入
dynamic_cast作用
select poll epoll区别
C++和python的区别,什么是静态类型 动态类型 强类型 弱类型
python的内存管理和生命周期
TCP的发送和接收窗口
基类中的private虚函数怎么被子类访问

#面经##招银网络##字节跳动##百度##阿里巴巴##校招##C++工程师#
全部评论
这是真的难,tql
1 回复 分享
发布于 2020-10-28 21:51
老哥,招银就一次技术面吗,我接到面试通知了,难不难?他们会卡学历吗,我是双非本科
1 回复 分享
发布于 2021-04-04 16:18
手写avl树可太牛皮了
5 回复 分享
发布于 2020-10-29 10:31
点赞 回复 分享
发布于 2020-10-28 16:53
tql楼主
点赞 回复 分享
发布于 2020-10-28 17:40
tql小菜鸡连面试机会都没有
点赞 回复 分享
发布于 2020-10-28 19:16
tql
点赞 回复 分享
发布于 2020-10-28 19:16
tql
点赞 回复 分享
发布于 2020-10-29 00:52
tql,膜了。楼主能分享一下自己的C++学习途径和学习方法吗?
点赞 回复 分享
发布于 2020-10-29 13:45
太强了楼主,楼主分享一波学习经验也好。
点赞 回复 分享
发布于 2020-10-30 16:57
字节这个真的难
点赞 回复 分享
发布于 2021-07-23 11:43
太牛了
点赞 回复 分享
发布于 2022-04-11 19:33
太强了
点赞 回复 分享
发布于 2022-04-12 15:23

相关推荐

36 271 评论
分享
牛客网
牛客企业服务