小米、头条、知乎面试题总结

小米云平台:
两道算法题:

  1. 在搜索时,搜索词会做为高亮词,在一段文本中找到高亮词并使用括起来,
    比如,搜索词“小米”,文本为“小米手机很好用”,结果显示为“'小米手机很好用”。
    注意:搜索词可能会有多个。
  2. 在一个整数数组中,找出出现次数大于一半的数。使用空间复杂度为O(1)的算法。
  3. 说说你的项目(我的是Spark数据分析项目,有问细节)
  4. 说说HashMap的实现原理
  5. Spark常用的map、reduce算子有哪些?
  6. 说说推荐系统
  7. 谈谈Hadoop和Spark的区别
  8. 说一下你对大数据的理解
  9. 有读过源码吗?有哪些?
  10. 你对大数据语言的理解
  11. 反问阶段

今日头条:
岗位是头条后台短视频开发。

电话面(40分钟):

  1. TCP和UDP的区别?
  2. UDP有哪些应用,微信视频通话是如何使用UDP实现?
  3. 如何使用UDP实现一个安全可靠,数据无丢失的视频通话。
  4. 说说你常用的linux的常用命令
  5. 如何常看进程的端口,CPU的使用率
  6. TCP三次握手
  7. http协议在客户端和服务端的区别
  8. socket服务器和客户端建立连接的实现过程
  9. java自旋锁
  10. git使用过吗?merge操作,还有一个命令忘了
  11. kafka的主要组件,实现原理,kafka的分区分配策略
  12. redis的zset类型,常用的命令,底层的实现原理(基于跳表实现)
  13. spring的依赖注入
  14. mysql的索引有哪些?
  15. B+树是什么
  16. 聚集索引和非聚集索引的区别
  17. mysql有哪些存储引擎,它们之间的区别
  18. 数据库事务的隔离级别
  19. 可重复读解决了什么问题?
  20. 脏读是什么?
  21. hadoop和spark的shuffle过程
  22. 一道简单的算法(有点忘了)

一面(视频面40分钟):

  1. linux文件系统的实现原理
  2. 如何通过访问磁盘中的数据传送到远程服务器,说出实现原理
  3. 操作系统的内存管理
  4. 磁盘调度算法
  5. 磁盘中的数据如何调度到内存当中
  6. 缓存和缓存区的区别
  7. Spring IOC,DI以及实现原理
  8. 说说动态代理
  9. 说说Spring容器的理解
  10. Spring如何解决循环依赖
  11. 需要往一个系统中不断的发送数据,如何设计?如果要想在这个系统中保留最新的100条数据,如何设计?如果基于数组的话时间复杂度O(1)怎么实现?
  12. 代码实现循环数组

二面(视频面:40分钟):

  1. 说一下你的学习经历
  2. 如何检测链表有环
  3. 有一个很长的数组,如何使用更高效的方式来检测只出现一次的元素
  4. TCP的拥塞控制是什么,怎么解决
  5. HashMap内部实现原理
  6. 如何理解hash函数
  7. 你用redis通常来做什么,redis的key过期策略
  8. 实现LRU算法
  9. 如何实现正太分布函数,均匀分布?
  10. 布隆过滤器
  11. 假设你是一个机长,飞机上的每一个用户可能会吃面或者饭,如何为每一个用户提供需求?如何转换为计算机的问题来解决
  12. 你的项目解决了什么问题(Spark数据分析项目)
  13. 最近在做什么事情
  14. 反问阶段

三面(最后一轮技术面,40分钟):

  1. 博客系统的项目介绍,实现了哪些功能。

  2. 了解排序算法吧,说说快排和归并排序。

  3. 给出一个数字矩阵,寻找一条最长上升路径,每个位置只能向上下左右四个位置移动。
    Example:

    nums = [
    [9,9,4],
    [6,6,8],
    [2,1,1]
    ]

    返回 4,最长上升路径是[1, 2, 6, 9].

知乎(大数据仓库岗位):

一面(视频面40分钟左右):

  1. 自我介绍
  2. spark streaming kafka的两种连接方式和区别
  3. spark streaming exactly only once语义
  4. UDAF UDF UDTF的区别,怎么实现(项目中有用到,所以问到了)
  5. spring aop
  6. 读取磁盘数据为什么会很慢,磁盘调度算法
  7. 进程调度算法
  8. 页面/内存抖动
  9. 操作系统的内存管理方式
  10. java抽象类和接口
  11. 平时做项目时遇到的线上故障,怎么解决的
  12. 有多个班级,求每个班级第二名和倒数第二名的分数差:(手写SQL)
    1 56
    1 78
    2 89
    2 56
    3 45

二面(40分钟左右):

  1. 介绍你的项目

  2. 你最拿手的是什么

  3. java并发编程

  4. Linux下查看端口被哪个进程打开了

  5. 说一下linux的/proc目录

  6. 用过git吗?git修改暂存

  7. ARP协议

  8. imp,icmp协议

  9. dos job.zhihu.com怎么通过DNS解析

  10. http数据报的格式

  11. get post 区别

  12. restful 规范里除了 get 和 post 还有哪些

  13. 说一下java中的锁有哪些(互斥锁,共享锁,可重入锁,乐观锁,悲观锁/重量级锁,轻量级锁、偏向锁、自旋锁)

  14. 悲观锁和乐观锁的区别

  15. synchronized 和 lock

  16. 说说CMS G1

  17. Spring 拦截器和过滤器

  18. scala的nil none null nothing

  19. java的yield

  20. python装饰器

  21. GC算法

  22. 手写SQL
    A B

    T

    1 2
    1 3
    2 1
    2 4
    3 2
    3 1

代表 A 列用户关注 B 列用户
求互相关注的用户
结果
1 2
1 3
2 1
3 1

你可能感兴趣的:(面试总结)