微信支付,目前处于HR面,许愿能接到HR电话吧
1、 static关键字作用
2、 static修饰的变量什么时候初始化
3、 C++里面基类派生类构造顺序
4、 Stl的map介绍一下
5、 跟unordered_map的差别
6、 你经常用这两个哪一个
7、 动态内存分配会有什么问题
8、 怎么避免内存泄漏
9、 智能指针介绍一下,怎么防止内存泄漏
10、虚函数实现机制
11、常见的排序算法
12、有线性复杂度的排序算法吗
13、100亿个数找前1W大的数字
14、用堆来解决这个问题的时间复杂度和空间复杂度
15、进程和线程的区别
16、你喜欢用多进程还是多线程,什么场景
17、死锁知道吗,怎么避免死锁
18、Get和post的区别
19、http的缓存了解吗
20、tcp和udp的区别
21、tcp怎么保证可靠
22、tcp和udp使用场景
23、三次握手介绍一下
24、Accept发生在三次握手哪一步
25、Tcp怎么保证数据包收到
26、怎么避免数据包重复接收
27、序列号怎么生成
28、序列号怎么变化的,随着确认接收
29、序列号回绕怎么办(这个没回答出来,用tcp首部补充字段时间戳就行了,舍弃最远的时间戳数据包)
30、流量控制和拥塞控制区别
31、乐观锁和悲观锁区别
32、适用场景
代码题:输出链表倒数K个节点,需要处理异常情况,链表为1,K为1000这种
面委会二面
上来就是两道代码题
1、 给你一个无符号整形,翻转这个整形,输出字符串形式
char* change(unsigned int a)
你觉得这个函数接口合适吗,如果让你改动,怎么改
string change(unsigned int a)
为什么?
2、 字符串编辑距离(leetcode有)
开始问题
1、 你了解string吗,里面实现机制
2、 String的append函数怎么实现
3、 哈希表实现原理介绍一下
4、 哈希冲突怎么办
5、 你了解哈希表怎么扩容吗,为什么需要扩容
6、 如果给你两组千万级别的微信号,最长16个字符,怎么快速获得两组微信号的交集
7、 多进程和多线程适用场景
8、 微服务架构为什么用多进程好?(由于我项目里面有涉及微服务)
9、 Tcp和udp的区别,我们现在面试会议用的什么协议
10、Select、poll、epoll区别
11、如果让你设计一个高可靠的系统,外部有大量并发流量,内部有服务器宕机、网络断了的问题,你怎么办
12、Redis了解吗,为什么redis这么快,redis的储存结构是啥
面委会三面
1、 介绍项目
2、 难点
3、 微服务架构宏观和底层(由于我项目里面有涉及微服务)
4、 我现有有10个数据包,我调用send十次,如果是tcp,对方可能收到多少个包,如果是udp呢
5、 设计一个游戏排行榜,分数有范围的(0-10000)以及分数无上限的(几十亿的那种)
6、 你平时怎么学习算法的,参加过ACM吗,我说我写leetcode,参加leetcode周赛等
7、 你怎么看待你的优点和缺点
百度C++工程师
下属部门内容分发部门CDN
1、 单链表翻转
2、 40亿整形int,需要消耗多少内存,0-40亿,怎么存下这40亿个数,只需知道某一个数字存在与否?写代码实现(BitMap)
3、 LRU
直接让我从C++、操作系统、TCP、文件系统里面选自己最熟悉的来讲
1、 说了虚函数
2、 C++11特性用了啥(说了auto、lambda、智能指针)
3、 override
4、 函数重载
5、 C++怎么实现函数重载的(函数名字签名发生了什么变化)
6、 函数签名怎么理解
函数签名包括函数名、参数类型、参数个数、顺序以及所在的类和命名空间
7、 函数签名除了包括参数数量、顺序还有别的信息吗?
8、 C编译出来的函数,函数签名包含什么东西?
函数名
9、 怎么指定C++使用C的方式编译函数?
10、深拷贝和浅拷贝
11、Lambda表达式可以作为函数传递吗?如果可以传递,参数类型是什么?
12、函数对象、仿函数的概念、怎么传递函数对象
Function<int (int, int)> f可以 int (*f)(int, int)不行,无法传递重载括号运算符的类或者结构体
13、除了STL库还用过别的C++库吗
14、线程间同步的方式(全局变量可能不对、说了信号量、互斥锁、临界区,)临界区直接被怼,临界区是一个概念,不是一个同步机制,是线程进入该区域操作共享资源,就叫做临界区
15、三次握手会涉及到哪些函数
16、connect返回了可以认为连接成功了吗
17、connect返回了连接不一定成功,原因有什么?
18、Linux文件描述符数量限制1024对服务器并发有什么影响?
19、timewait状态
20、客户端和服务器疯狂连接,timewait状态小于2MSL和大于2MSL会有什么问题
21、小于2MSL时会收到什么类型残留报文?
22、服务器进入Timewait状态会怎么样?说了会浪费端口,被面试官指正后,改完会浪费连接资源
23、服务器断开连接不等2MSL立马重启,能重启起来吗?
不能,linux系统强制等待2MSL,120S,如果需要立马重启,需要设置SO_REUSEADD
24、Timewait状态对服务器和客户端不同的影响?
2、 谈谈你了解的进程调度
3、 进程状态有哪些
4、 为什么要有就绪状态
5、 谈谈你了解的虚拟内存
6、 谈谈你了解的tcp、udp
7、 Udp是一定不可靠的吗
8、 网络层有哪些协议
9、 Ip的作用
10、聊一下你的项目,创新点
11、你平时刷leetcode吗,代码积累量(面试官看中日积月累的过程,和面试官强调了我刷了900多题,从研一就开始准备了)
12、让我从leetcode选一道代码题,选做过的可能加分不多,我选了没做过的,选了剑指II的095,很明显的DP,结果边界状态没处理好,没AC出来,跟面试官分享了解题思路
13、面试官评价很中肯积极,百度面试官都很nice的
百度三面
主要是介绍项目了,为了介绍项目我特意做了一个PPT,结构就类似背景(why)、做什么(what)、how(怎么做,每个方案的对比,怎么抉择)、总结、未来
这要感谢我的腾讯的学长,让我明白了怎么向三面面试官介绍项目,因为越后的面试官级别一般越高,看问题的角度就会越宏观。
字节跳动抖音客户端开发
2、inline的作用
3、define的作用
4、有一个图像计算密集型任务,单线程快还是多线程快
5、优先级反转
6、字节对齐
7、mmap作用
8、http和https的区别
9、https是怎么加密的
10、如果把https的数据包硬修改怎么办
11、代码题atoi
2、 移动构造函数
3、 move的作用
4、 多态
5、 虚函数的实现原理
6、 怎么找到虚函数来调用
7、 能不能直接访问虚函数指针
8、 虚函数表存什么东西
9、 在段页式操作系统里面,CPU访问内存怎么访问
10、TLB存的什么东西
11、虚拟内存的作用
12、静态链接、动态链接
13、程序怎么加载到内存的
14、进程切换
15、和线程切换的关系
16、线程状态
17、阻塞的线程占用CPU时间片吗
18、死锁
19、怎么避免死锁
20、分析一个url链接
21、DNS的作用
22、get和post的区别
代码题:
二叉树的镜像对称
2、vector扩容
3、哈希表和map
4、限制对象在堆上创建(私有析构函数)
5、堆栈分类速度为什么有差异
6、tcp怎么保证可靠
7、拥塞控制算法介绍
8、子网掩码作用
9、二叉堆插入时间复杂度
除了二叉堆还有别的堆认识吗,不认识谢谢
智商题
1、rand5实现rand7
2、判断一个点在三角形内
3、点乘和叉乘
代码题
ip地址还原
全部评论
(7) 回帖