京东正式批一面二面C++

一面:
1. LT 模式和 ET 模式的区别
2. ET 模式 while 循环什么时候跳出
3. 对于第二个问题,以 read 为例,怎么知道具体的出错是什么,具体出错的场景 (EAGAIN和EWOULDBLOCK其实不算读取失败,即这种情况下不需要关系连接)
4. tcp 服务器主动关闭连接时,netstat 服务器处于什么状态;以及之后的客户端的状态历程
5. tcp 客户服务器,在服务器正在处理数据时,客户端关闭了连接,你是怎么做的(问我的项目是怎么处理的)。(我项目中没有特殊处理,但在这种情况下,会出现向已关闭连接的套接字写数据的情况,产生 SIGPIPE 信号,而我的项目中一开始就设置了对 SIGPIPE 的捕捉处理为忽略)
6. 线程同步方式有哪些
7. 互斥锁与自旋锁的区别,自旋锁的应用场景
8. 项目中遇到的困难
9. C++的三种特性,谈谈你对这三种特性的理解
10. malloc 和 new 的区别
11. 一个类有一个 int,占多少个字节;在多一个 char 类型,占多少字节;再加一个 static int,占多少字节;类再加一个函数,占多少字节;再加一个虚函数占多少字节;再加一个虚函数占多少字节;另一个类只有一个 int,继承自这个类,这个类占多少空间
12. 堆和栈的区别,谈谈你理解的内存碎片
13. 你是怎么处理内存泄露的 (没用过内存泄漏工具 Orz)
14. 对我们这边(面试官)有没有什么想了解的
15. 反问环节


二面:
1. 自我介绍
2. 客户端同一连接来了很多请求,这种情况下你的 epoll ET 是怎么处理的
3. 非阻塞 IO,你一般把哪些套接字设置为非阻塞 IO
4. 监听套接字设置为非阻塞以后会有什么样的问题
5. connect 使用的套接字可以设置成非阻塞吗
6. connect 默认情况下是非阻塞还是阻塞
7. 客户端通过什么系统调用发起三次握手的
8. 假设 connect 是阻塞的,那么它会阻塞多久...
9. 对于 connect 如果服务端没有响应会怎么样
10. 服务端同一瞬间来了大批量的连接,你的程序接收多少个  (拓展:你要怎么吧这些连接接收下来)
11. 还问了一个什么连接了解过吗 (不知道,没听清,估计他觉得我没听过,就直接跳过了)
12. 同一连接一瞬间来了大批量的请求,你的程序能处理多少个 (还有一些balabala的)
13. 多线程应该注意哪些点
14. 线程同步的方法
15. 锁在高并发下是一个性能瓶颈,怎么样去提升它的性能
16. HTTP 用什么分割包头包体的
17. 反问环节

二面总结:我是废物


发个面经攒人品,希望二面能过吧~
#京东##面经##C++工程师##校招#
全部评论
老哥面的哪个部门
点赞 回复 分享
发布于 2020-08-19 09:30
老哥我今天也是C++复试,一面也是11号进行,问的问题差不多
点赞 回复 分享
发布于 2020-08-18 19:45
楼主的项目就是那种server服务器项目吗 用了epoll 线程池啥的
点赞 回复 分享
发布于 2020-08-18 19:11
楼主笔试过了多久被邀面试的
点赞 回复 分享
发布于 2020-08-18 13:58

相关推荐

我面的是Golang后端,结果上来基本上不问后端问题,全问的是AI方向的,也不问简历,什么Go协程,并发,GMP调度和大部分是数据结构底层八股全部都不问,还有后台常考的Mysql,Redis和MQ也不问。问了大模型落地训练微调量化,还有FunctionCalling,MCP,龙虾Skill。出了两个简单的计算题有一个结果还出错了,我推导半天结果有问题,最后拿编译器穷举发现根本没结果。最后问为什么不问后端题目而是问AI方向的,回答是因为我简历里面的项目全是保密项目,技术难点不可能达不到真实业务高并发需求,所有的实现都是基于标书的,所以问了等于没问,索性就不问了。面完之后感觉人都麻了,感觉就是不想面,还不如直接说出来拒接,浪费双方的时间。题目:abc+cba=1331,求解a+b+c=?我的解法是:100a+10b+c+100c+10b+a=1331101a+20b+101c=1331101(a+c)=1331-20b令a+c=x∈0-18,b=y∈0-9101x=1331-20y右边y的系数是20,所以不管怎么减右边个位数都是1,那么左边101只能乘个位数为1的数也就是x要么是1要么是11,但是1和11的时候y都不满足条件0-9然后我人麻木了陷入了怀疑,就拿编译器用穷举(三重for循环实现)package mainimport "fmt"func main() {for a := 0; a < 10; a++ {for b := 0; b < 10; b++ {for c := 0; c < 10; c++ {if 101*(a+c)+20*b == 1331 {fmt.Println(a + b + c)fmt.Printf("a: %d, b: %d, c: %d\n", a, b, c)}}}}}最后结果也是没有输出,最后面试官才反应过来是1131算了半天结果是题目有问题
查看6道真题和解析
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
4
61
分享

创作者周榜

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