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

本文全面覆盖了大数据与后端开发领域的面试题目,包括算法挑战、项目讨论、技术原理及应用,深入探讨了Spark、Hadoop、Redis、MySQL等关键技术,并涉及TCP、UDP、HTTP等网络协议的理解,以及操作系统、数据库、云计算等核心概念。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

转载自:http://www.zhongruitech.com/549898951.html

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

  1. 在搜索时,搜索词会做为高亮词,在一段文本中找到高亮词并使用<color></color>括起来,
    比如,搜索词“小米”,文本为“小米手机很好用”,结果显示为“'<color>小米</color>手机很好用”。
    注意:搜索词可能会有多个。
  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

乎中,关于2022年Spring面试题的讨论有很多。Spring是一个非常流行的Java企业级开发框架,相关面试题主要围绕该框架的核心概念、特性以及应用进行。 首先,一些常见的Spring面试题可能涉及到IoC(控制反转)和DI(依赖注入)的概念和原理。回答此类问题时,我们可以解释IoC是一种设计模式,通过将对象的创建和管理交给Spring容器来实现,这样可以提高代码的可维护性和扩展性。而DI是IoC的一种具体实现方式,通过依赖注入来实现对象之间的解耦。 其次,关于Spring的AOP(向切编程)也是一个常见的面试题。我们可以解释AOP是一种通过将横切关注点(例如日志记录、性能监控等)与主要业务逻辑进行解耦的编程思想。Spring提供了一种基于代理模式的AOP实现方式,可以通过切、连接点、切点和通等概念来实现对关注点的管理和处理。 此外,关于Spring MVC的问题也常常出现在面试中。我们可以解释Spring MVC是Spring框架中用于开发Web应用的模块,它采用了基于MVC设计模式的思想,通过DispatcherServlet、HandlerMapping、Controller、ViewResolver等组件来实现请求的处理和响应的生成。 另外,对于Spring中的常用注解(例如@Controller、@Service、@Autowired等)的理解,以及它们在项目中的应用也是一个常见的面试题。我们可以解释这些注解的作用和使用方式,说明它们可以简化开发流程、提高代码的可读性和可维护性。 总结来说,回答Spring面试题主要需要对Spring框架的核心原理、概念和应用有一定的理解,并能够将其与具体的项目场景进行结合,以展示个人的实际应用能力和经验。同时,在准备面试时,也可以通过查阅相关书籍、官方文档和参与实际开发来巩固和扩展自己的识。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值