京东正式批一面二面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. 反问环节
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. 反问环节
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++工程师##校招#