梅朵看世界 学校
APP 内打开
分享
评论
32

【互联网行业-京东】面试复盘|京东C++开发工程师 一面(已凉)

面试时间:74分钟

面试官:精神小伙


开局自我介绍

开幕雷击,面试官说简历收到10份,有5份都是这个web服务器,还去github看了原来的项目,3.2kfork。问我的跟他的有什么不同,参考了多少(此时打脸,我放了github链接),面试官点开链接去对比,发现目录结构都是一样的。。。

只好如实回答,参考的,思路别人的。

面试官问我有没有改进:我提到了几点

讲一下select和epoll的不同

讲一下select的底层实现,了解吗?我这边说错了。。。面试官说我不对

讲一下epoll的底层实现,源码了解吗?

讲一下升序链表是怎么操作的,定时器?

定时器是怎么和主线程交互的?epoll统一事件源,通过管道,传递信号。

链表怎么删除增加的,有效期多少

日志系统是用的开源的,还是自己写了一个日志库?答:就是一个非常简单的往文件写入的系统

讲讲webbench,你是怎么弄得,讲原理。因为我自己重写了一个webbench,又开始讲里面细节,还说到了我里面的一个错误...

讲讲协程,你实现了一个协程库?怎么实现的,用的是linux的底层函数。 都保存了什么信息?答:各种寄存器。后面还提到了用汇编来更快,保存的也更少

协程的好处,有了线程为什么还要协程。

C++模版,模版里面只能传递类型吗?答:不是的,还能传递变量

C++模版是什么时候确定类型的。答:这里打错了,应该是全部在编译时期

C++里面的智能指针了解吗?都有哪些 讲讲

为什么要有weak_ptr

shared_ptr引用计数是线程安全的吗?

自旋锁 cas里面有哪几步?两步对吧,那怎么保证他们这两步是原子性的呢?有没有看过底层实现?没有

讲讲移动语义?你的意思是移动之后原来的就不能用了吗?如果移动的是左值,左值也不能用了 吗?这块答得不好,细节一扣有点露馅

讲讲完美转发,是干什么的

讲讲unordered_map和map,底层实现?增删改查复杂度是多大的?

平时是怎么调试程序的?gbd

常用的gdb命令有哪些?如何调试多线程呢?

有没有遇到过程序崩溃的情况?条件反应 core dump,然后问如何调试core dump? 如何定位错误?

算法题:

240. 搜索二维矩阵 II


704. 二分查找


反问:部门技术栈?做推荐架构的

学习方向?做一些工业级的项目,别做开源的demo项目,不知道你的具体实力。

说实话,京东面试很离谱,最后问一下有什么不足需要后面继续学习的地方,面试官说都挺好的,然后反手给挂了~无语

还有一些细节的东西可能忘了,想起来再补充

发布时间:2021年08月31日
用户头像
我来说两句…
暂无评论 暂无评论