Advertisement

最新“美团+字节+腾讯”三面面经,你能撑到哪一面?

阅读量:

正值求职旺季之际,在接下来几天内预计会有大量求职者加入面试大军。因此这段时间里我整理了多套面经。今天为大家呈现的是美团、字节跳动以及腾讯等三大互联网巨头的面试题库。每个公司都有三个阶段的面试环节(一至三次笔试与面试),希望这份资料能够帮助大家在接下来的时间里更好地准备各类岗位的考试或面试。

先来看美团

在美团的三轮面试中涉及的内容知识非常广泛,在数据库系统方面主要考察了MySQL的相关应用,在分布式系统方面则重点考察了Redis和Kafka的知识储备。此外对线程机制算法基础以及相关的性能优化问题都有较为深入的要求;其中比较重要的是对volatile关键字的理解以及如何通过线程管理来实现并发操作;还有对设计模式的理解与应用能力也是一个考察的重点;这些核心技术点都是开发岗位的核心考察对象以及未来职业发展的关键基础

一面问题(MySQL+Redis+Kafka+线程+算法)

  • mysql知道哪些存储引擎,它们的区别
  • mysql索引在什么情况下会失效
  • mysql在项目中的优化场景,慢查询解决等
  • mysql有什么索引,索引模型是什么
  • B-树与B+树的区别?为什么不用红黑树
  • mysql主从同步怎么做
  • 乐观锁与悲观锁的区别?
  • binlog日志
  • redis 持久化有哪几种方式,怎么选?
  • redis 主从同步是怎样的过程?
  • redis 的 zset 怎么实现的?
  • redis key 的过期策略
  • hashmap 是怎样实现的?为什么要用红黑树,而不用平衡二叉树?为什么在1.8中链表大于8时会转红黑树?HashMap为什么线程不安全的?
  • 如何实现线程安全的hashmap?
  • select 和 epoll的区别
  • http与https的区别,加密怎么加的?
  • raft算法详细讲解
  • Kafka 选主怎么做的?
  • kafka如何保证生产与消费都是同步的?
  • kafka 怎么保证不丢消息的
  • redis如何保证高可用
  • 算法:剪绳子(贪心或递归解决)
  • 算法:给前序和中序遍历,重建二叉树

二面(volatile+线程+并发+算法+设计模式)

  • 自我介绍
  • 讲述项目(项目的特色不明显,请直接说明基础)
  • volatile的作用?其底层实现是什么?在禁止重排序的场景下如何使用?单例模式中volatile的作用是什么?
  • 线程池的构造方式及其参数设置、饱和策略的具体实现方式?
  • 公平锁与非公平锁的主要区别在于什么?其效率低的原因是什么?
  • 线程的各种可能状态及其切换机制?
  • 线程、进程与协程之间的主要区别是什么?
  • 同步队列器(AQS)的工作原理及其基于此实现的具体同步机制(如wait、notify等)是什么?
  • 介绍CountDownLatch、CyclicBarrier和Semaphore这三个并发控制类的基本功能与工作原理。
  • 手工实现几种常见的线程池类型,并说明其最终返回值的方式。
  • 手工模拟单例模式的操作流程及其实现细节。
  • 手工模拟消费者生产者模式的工作流程及其实现细节。
  • 算法:详细描述反转单链表的具体步骤。
  • 给定一个仅包含'('和')'的字符串,请使用栈或其他数据结构找出最长有效括号子串的长度并详细描述算法思路。

三面

这一面,没问啥东西,主要聊人生,和未来3年的规划。。。。。。

第二个是字节跳动

一面(算法+数据库+事务+网络)

  • 自我介绍
  • 项目概述(较为基础且缺乏创新性)
  • 堆排序的基本原理及其时间复杂度分析、稳定性探讨以及最坏情况下的表现
  • Object类的主要功能列表
  • DNS解析的具体流程(从域名到IP地址再到最终访问过程)
  • HTTP与HTTPS的本质区别
  • UDP实现可靠传输所需采取的关键措施
  • HTTPS的工作原理及其加密机制详细解析
  • 数据库传输算法:如何通过TCP三次握手实现可靠数据发送
  • 数据库索引设计优缺点对比及失效条件分析
  • 事务隔离级别分类与选择依据说明
  • 数据库常见问题:脏读现象剖析以及解决策略探讨
  • 算法讲解:"接雨水"问题的经典解法思路解析(包括双指针法与动态规划方法)
  • 算法深入理解:N皇后问题的经典回溯算法实现过程解析与优化技巧分享

二面(Kafka+redis+算法)

  • Kafka系统的主要特点是什么?
  • 在Kafka中,请简要说明分区器、序列化器与拦截器的基本功能及其处理顺序。
  • 消费者如何实现高可用性和弹性伸缩?
  • 在什么情况下可能会导致消息未被正确消费?
  • 如何设计系统以避免消息被多次消费(保证幂等性)?
  • 为什么说KafkaConsumer是非线程安全的?请说明多线程场景下的具体风险。
  • Kafka生产端客户端通常采用了哪些核心线程模块?各自承担什么功能?
  • 消费者与生产者的交互流程有哪些关键环节?
  • 是否允许调节 topic分区数量?操作时应考虑哪些因素?
  • 在算法层面上,请解释二叉树数据结构中的最大路径和计算方法。
  • 给定带循环链表的数据结构与头指针,请设计一种删除特定节点的算法。

三面(Redis+Spring+Dubbo+算法)

  • Redis ZSet 的实现原理是什么?
  • 什么是哨兵节点?它们与集群节点之间的区别及其适用工作负载场景有哪些?
  • 解释 Redis集群同步机制的基本过程。
  • 为什么单线程模式下的Redis比多线程模式更快?
  • MyBatis一级缓存与二级缓存之间存在哪些关键区别?
  • 如何利用Spring框架解决对象创建时的循环依赖问题?
  • Spring AOP 的核心思想是什么?
  • 在Spring框架中如何管理组件生命周期?
  • Dubbo服务暴露与引用机制是如何工作的?负载均衡策略、容错机制的具体实现细节在哪里?
  • 在实际项目中遇到了哪些技术挑战。(抱歉,在此场景下并未涉及增删查改操作)
  • 算法:如何镜像二叉树结构?
  • 从上至下遍历二叉树的方法有哪些?

最后瞄一眼腾讯

腾讯这三面下来问的也不少,自求多福吧。

一面

  • 请阐述设计一个秒杀系统的具体思路?
    • 您打算采用何种方法进行大规模数据采集(一天爬取一千万条文章),并提出相应的技术方案?
    • 在多线程或多进程并行处理方面有哪些具体的协调机制?如何在100台服务器之间实现最理想的负载均衡?
    • 您是否有使用过短域名服务?能否分享一些实际应用中的经验和教训?
    • 关于微服务架构中的服务发现机制,请简述其概率学理论基础和负载均衡的具体实现方法。
    • 在线问题排查的有效策略是什么?(已掌握相关知识)
    • 简述贝叶斯定理的概率理论基础。
    • 负载均衡的加权轮询算法的具体实现步骤是什么?
    • 面对用户流量突增的情况,请提出相应的优化建议。
    • 关于Paxos算法的学习体会,请分享您的看法。
    • 平时都关注哪些技术类博客和阅读哪些专业书籍?

二面

  • 自我介绍
  • 项目介绍
  • redis的5种类型,及其实现原理
  • 如何使用redis的Zset实现延时队列?
  • redis如何实现高可用?
  • redis缓存穿透、缓存击穿、缓存雪崩
  • 布隆过滤器的实现
  • 如何保证mysql与redis的双写一致性?
  • 负载均衡算法有哪些?
  • 服务发现是怎么实现的?
  • 熔断是怎么实现的?
  • 算法:连续子数组的最大和
  • 讲讲分布式CAP和BASE?
  • 什么是强一致性?
  • 分布式事务的解决方案?
  • TCC(两阶段型、补偿型)
  • id生成器如何实现?
  • 如何判断一个图是否有环?
  • 一致性Hash算法,及其应用
  • 背包问题

三面

  • 自我介绍
  • 项目介绍
  • redis的zSet如何实现?
  • redis持久化机制。
  • redis的Hash类型讲解,渐进式rehash。
  • HashMap原理,一个put操作,都有什么流程?
  • nginx有自己配置过吗(这个是我唯一手动操作过的,这个不是背的)
  • nginx的使用场景。
  • 什么是分布式,什么是集群,区别是什么?
  • 在基于dubbo的分布式环境中,一般将超时timeout设置在provider还是consumer?
  • dubbo中负载均衡的策略有哪些?
  • 接口的异步调用?如何设置?运行效果?
  • 谈谈基于dubbo的系统中consumer集群的解决方案?
  • mysql是集群还是单节点?最大连接数,最大的表中数据量大约是多少?
  • mysql主从复制主要有哪几种模式?
  • mysql索引,B+树,为什么不用红黑树?
  • 数据库垂直与水平拆分怎么做。
  • 分布式session设置
  • IO、BIO、NIO,阻塞与非阻塞的区别?
  • 分布式接口的幂等性设计(不能重复扣付款)
  • 算法:二叉搜索数与双向链表(这个懵了)
  • 算法:最长不含重复字符的子字符串
  • 算法:手写快速排序、插入排序、冒泡排序,并分析时间复杂度和空间复杂度,它们的稳定性

结局

考察完美团、字节和腾讯等公司的各类岗位需求会令应届毕业生倍感压力

文章开头提到了我一共背下了1,000道题目左右,并感到这些积累确实派上了用场。随后我发现这些练习题中的许多问题都可以在之前的习题集中找到相似的内容。因此今天就与大家分享互联网工程师求职面试所需掌握的核心1,000个常见面试问题

需要获取得话麻烦一键三连+评论,然后添加VX(tkzl6666)即可免费领取

**

**

全部评论 (0)

还没有任何评论哟~