面的是京东零售的存储团队,Base北京,主要做分布式缓存系统,对网络要求比较高,要是了解分布式一致性算法(非必需)会更好。
之前提前批一二面的面经,参考:
京东C++开发一面面经(技术面,电话,30min)
1.C++
(1)指针数组和数组指针的区别?
(2)函数指针怎么定义?
(3)C++内存布局和每个区的作用?(栈区、堆区、全局区、常量区、代码区)
(4)栈的生长方向?(高地址向低地址方向生长)
(5)重载、重写、隐藏的区别?
(6)有继承关系的父类析构函数定义成virtual,为什么?(内存泄漏)
(7)如何对字符串string的operator=函数进行重载?(返回值string&,参数const string&,函数体判断自赋值情况,不是则深拷贝,返回*this)
(8)深拷贝用什么函数?(strcpy)
(9)strcpy会有什么问题?(可能字符串里面中间包含普通字符’\0’)
(10)那应该怎么解决?(memcpy)
2.网络
(1)I/O多路复用技术介绍下?(讲了select、poll、epoll底层数据结构、特点、以及区别)
(2)epoll水平模式和边缘模式使用时要注意什么?(边缘触发时缓冲区数据如果不一次性读完,不会再通知,因此要使用while循环读取缓冲区直到返回-1和EAGAIN来判断是否读完所有数据)
(3)不存在丢包,也不存在忙于读写的情况,netstat发现close-wait过多,原因是什么?(不会,有懂得大佬麻烦告诉我一下)
(4)如果不想通过四次挥手直接关闭连接,怎么做?(设置SO_LINGER,l_onoff=1,l_linger=0,调用close函数时,会发送RST报文强制结束连接)
3.代码
口述二分查找
mid=(left+right)/2会出现什么问题?怎么解决?(left+right可能溢出,可以改成left + ((right-left) >> 1))
4.反问
京东C++开发二面面经(技术面,电话,40min)
1.项目介绍
简单的问了几个问题
2.操作系统
(1)I/O多路复用技术有哪些?
(2)什么是线程安全?
(3)epoll_ctl是线程安全的吗?
(4)vmstat命令了解吗?
(5)vim里面查找一个字符?
(6)虚拟内存介绍下?
3.反问
全部评论
(8) 回帖