滴滴 8.19 一面 二面

一面 (50min)

  1. 讲项目
  2. 讨论项目中细节
  3. 线程池中线程如何负载均衡?(网卡住了,然后就没问了)
  4. JUC 中有哪些类

算法题:

链表:1234567 转换为:7563421。
写完主题代码讲了思路,没有运行,面试官问了些代码细节。

给我两点建议:

  1. 将项目挑重点,讲的详细但是费时间,如果面试官问的少,有一个没答上来,那么错误比重就很大。
  2. 写代码变量和函数名起有意义的名字。(我写算法习惯命名简单点,名字长了累眼睛)

一面面试官的建议很有用。

二面 (1h10min)

  1. 讲讲最近项目的收获吧(我自己讲了项目10分钟)
  2. 面试官对于项目可靠性投递的提问
  3. 讲讲 NIO 比之前的 IO 优化在哪里?说说你理解的阻塞
  4. Unix 如何实现非阻塞?Unix 非阻塞和 NIO 的区别?面试官想问的是os阻塞用户进程的过程,我跑题了?还提到了AIO相比NIO,其实就是优化了用户去像操作系统轮询的用户态内核态的性能消耗,相当于操作系统帮忙完成了这部分。
  5. Netty 框架做什么的
  6. RocketMQ 如何保证可靠性?单机和集群。说是 RocketMQ 实现 IM 是最简单容易的方法。
  7. 多 Producer 和 Consumer 之间如何做负载均衡?(我先说的 consumer 绑定 broker 队列,然后说的的 consumer 根据消息堆堆压、CPU负载、内存负载来动态路由,做一个中间负载均衡层,他说太重, 可以直接权重轮询效果就很好)
  8. 讲讲理解的多路复用?
  9. Unix 如何实现多路复用(select,poll,epoll)
  10. epoll 比 select 优化在哪里?(数据结构,时间复杂度O(1),空间复杂度O(1),零拷贝)
  11. 我提到了 epoll 可以原址返回就绪事件,面试官问如何实现原址返回呢(面试官耳朵真灵,立马发现了原址,其实我都忘了,以前看的手册中印象中提到了epoll原址操作)
    我说了下我的猜想,从CPU控制用户态内核态内存方法和内存保护角度猜测可能是CPU做了指令的特殊处理,允许访问特定一个内核区间段。
  12. 从网卡接收到数据流到 JVM 中接收到数据的流程?
  13. 上述流程哪里可以优化?我说的用户态内核态零拷贝,他问怎么实现的零拷贝?我说直接内存访问,他说那问题又回到了用户态如何访问内核态数据的问题(即问题11),面试官给出了答案,利用虚拟内存机制,将内核内存空间映射为一块逻辑空间,然后用户程序访问这块逻辑空间,分离实际内存地址和程序的耦合关系,通过虚拟内存来绕过CPU的检查(他提到了mmap?)。也是 11 的答案。
  14. 接着 13,还有哪些地方可以优化?面试官说网卡处可以使用 DMA 进行零拷贝,然后和面试官讨论了下 DMA,原来零拷贝不只是说减少拷贝,通过 DMA 节省 CPU 拷贝时间也算零拷贝的一种。学习了,还说现在已经有机制可以直接用户态访问硬件设备缓冲区。

算法题

滑动窗口最大值
一开始说用大顶堆,但是时间复杂度太高。做过这类题但是一时间想不起来了,然后说是单调栈,然后最后他提示单调队列,然后我说了思路,写了几行代码就说不写了自己回去写吧。

反问

部门:网约车
技术栈:PHP--> Go

和二面面试官聊的很开心,有种循循诱导的过程,和引导分析思路的过程,并且也学到了东西,很棒的面试官。

#面经##滴滴#
全部评论
二面难度太大了把
1 回复 分享
发布于 2022-08-20 14:08 山东
楼主过了吗
点赞 回复 分享
发布于 2022-08-26 21:00 湖南
可能我们二面是一个面试官,也是epoll那边聊的比较细,很多问题都是循循善诱,连算法题都是一道题,他真的好好
点赞 回复 分享
发布于 2022-08-20 22:26 上海
线程池中线程如何负载均衡? 这个怎么答呢
点赞 回复 分享
发布于 2022-08-20 14:10 山东
请问收到结果反馈了吗,同二面完,但是没啥结果反馈,招聘网站也看不来啥
点赞 回复 分享
发布于 2022-08-19 18:39 河北
每次提前背八股文发现好像都没咋问八股文,每次都是问项目。有友友知道如果二面过了啥时候三面吗
点赞 回复 分享
发布于 2022-08-19 16:40 江苏

相关推荐

04-28 11:34
西北大学 运营
牛客4396号:不好意思,这个照片猛一看像丁真
点赞 评论 收藏
分享
05-12 16:04
已编辑
江西财经大学 Java
点赞 评论 收藏
分享
评论
4
30
分享

创作者周榜

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