今日头条校招面试-后台开发工程师

一面:

1:自我介绍

2:手写代码:去除c++中的注释

3:详细描述网络库的架构

4:服务端编程需要用到的函数,详细解释

5:解释time_wait状态,原因,解决方法

6:解释MSL

7:解释服务端哪些函数需要阻塞,如何实现非阻塞

8:解释poll和epoll的区别,epoll的底层原理

9:简单描述红黑树

10:简单解释中断机制

11:解释读写缓冲,为什么这么设计

12:解释socket缓冲,滑动窗口协议

13:解释backlog,为什么有这个限制

14:线程池的简单描述

15:了解c++11中哪些新特性

16:左值引用和右值引用

17:生产者消费者模型,如何实现多线程访问

18:c++中如何实现信号量

19:提问环节

20:再解释论文中的一个算法吧,有加分


二面:

1:自我介绍

2:手写代码:之字形打印二叉树

3:解释网络库

4:解释消息队列,pub-sub系统以及RPC

5:解释poll和epoll的区别,epoll的底层架构

6:解释红黑树

7:解释hash_map的底层实现

8:解释线程池的实现

9:聊聊你的消息如何进行序列化和反序列化,如何判断大端小端

10:你的网络库和现在的网络库相比,有哪些没有考虑的,如何解决

11:最近有在看哪些技术书籍

12:mmap的原理,为什么比read,write要快

13:fwrite会经历哪些过程

14:解释分布式一致性协议,两阶段提交,raft以及其与paxos的区别

15:提问环节


三面:

1:自我介绍

2:解释CAP

3:解释分布式一致性协议,raft

4:设计题:设计一个后端系统用于用于查询新闻,其中数据库最多只能承受1w的访问量:

初步设计:连接路由+分布式缓存+超时机制+消息队列

5:超时机制如何更新新闻,新闻需要存储哪些东西,如何设计key:

优化:超时机制改为push

6:如何进行路由,路由表如何查找:

优化:map,红黑树,时间戳

7:路由会有单点问题,如何解决:

优化:一致性hash,分布式hash表

8:分布式hash和普通hash有什么区别,优势是什么

9:再谈谈超时机制,详细设计一下:

优化:类似LRU这样的缓存更新

10:如果每条新闻的超时时间不同呢:

优化:优先级队列

11:如何将这个优先级队列分布式化

12:优先级队列的原理

13:描述一下堆的插入和删除

14:网络库的设计思路,如何一步步想到这些的

15:未来对这个库优化思路

16:技术规划是什么,最近在看哪些技术书籍

17:了解哪些开源框架,了解头条的技术架构

18:想在头条里从事什么,提问环节


HR面:

很轻松,简单的聊了几句

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,569评论 19 139
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 179,063评论 25 709
  • 脱离母体的那一秒决定去死 然后用那一秒 幻想出自己的一生 也许这是神灵的游戏 也许你的一生也是这样过来的 ——《神...
    段童阅读 159评论 0 1
  • 产品发布 熬了两个月后,新版App终于发布,iOS版和安卓版,这比之前的进度延迟了整整一个月,原计划一个月完成。尽...
    阿威说说阅读 2,023评论 1 15
  • 上面是AzkabanWebServer的构造函数,AzkabanWebServer有如下的管理器: userMan...
    wangqiaoshi阅读 1,032评论 0 1

友情链接更多精彩内容