汇总下秋招大厂面经(头条、百度、美团)
近期楼主参加了除阿里外几个大厂的秋招面试,研发岗,被阿里面试官放了鸽子实属无奈😔
先放下面试题目吧,再进行汇总分析和点评,喜欢的同学留个赞😉
题目
百度-两面
一面(1小时) 常规:
- 自我介绍
- 介绍项目、学习的技术、遇到的问题
- 介绍实习公司做的业务
技术:
- composer fabric基础架构
- 介绍共识算法
- http和https区别,建立连接后哪个性能低,为什么
- http和https的端口固定么
- 长链接和短链接区别
- Linux文件描述符作用
- Linux怎么查看网络端口占用
- Linux怎么查看CPU占用
- 为什么有时中CPU占用会过高,怎么解决
- 匿名内部类中能否访问外部局部变量(final),为什么要加final
- java注解底层实现原理
- 什么是事务
- postman怎么根据上一个接口返回值动态设置请求参数
- mysql怎么存ip地址,怎么实现
- 用过哪些数据访问框架
- 怎么实现分布式调用链路追踪
- 分布式锁是为了解决什么问题
- 后端开发一般注意哪些问题
- 手写Java单例模式
业务:
- 一般怎么用户鉴权
- 判断镜像二叉树(go)
提问:
- 能从事哪个方向的工作
二面(1小时)
常规:
- 自我介绍
- 介绍实习公司的项目
- 介绍你认为最有难点的项目
技术:
- 画出实习公司的项目结构,介绍调用关系,异常处理等
- 指出top命令各参数的含义(load balance)
- cpu数值表示什么(比例)
- 为什么有的进程cpu占用显示超过100%
- 进程sleep时处于什么状态
- 如何编程实现对CPU占用率的控制
- 区块链和数据库有什么不同,区块链有哪些优势
- 区块链为什么有这些优势
- 介绍TCP滑动窗口
- 介绍TCP三次握手和四次挥手,为什么要四次挥手
- 什么是vlan
- 什么是vxlan
算法:
- 两栈实现队列
- 两队列实现栈
- 输出二叉树左侧视图
提问:
- 哥你多大?(为什么提这个问题呢,我觉得面试官说话很幽默,而且长的很年轻)
美团-三面
一面(1小时)
常规:
- 自我介绍
技术:
- 详细讲解区块链
- 对称加密和非对称区别,哪个更快,为什么
- https流程
- 什么是MySQL聚合索引,判断是否能触发索引(最左原则)
- 为什么MySQL索引有最左原则(b树)
- B树,B+树,全文索引的区别
- Redis怎么保证高可用
算法:
- 一颗四叉树,度数为4的节点有6个,度数为3的节点有10个,度数为2的节点有5个,求叶子结点个数
- 数组区间求和
- 数组分界为左右两部分,求这两部分最小差的分界位置
- 数1可以乘2或加1,求最少操作多少次能到2019
二面(1.5小时)
常规:
- 自我介绍
技术:
- volatile怎么保证可见性
- 线程有几种状态,状态怎么切换
- java怎么中断线程
- ThreadLocal是什么
- 怎么让一个线程等前三个线程任务执行后再执行
- 线程池有什么优点
- 线程池有哪些参数,怎么设置比较好
- 怎么定位哪个程序的哪个方法占用CPU
- IO和NIO区别
- 数据是怎么加载到内存中的(磁盘读写原理)
- 用过哪些数据库
- Redis单线程为什么快
- Redis使用场景
- Redis单线程为什么快
- Redis怎么保证高可用
- Redis怎么保证数据不丢失
- 什么是一致性Hash
- 分布式场景怎么生成全局唯一ID
- MySQL底层索引怎么实现
业务:
- 有用Redis设计过哪些场景
- 设计一个分布式累加器
- 通常按照什么依据分库分表
- 怎么提高项目的可扩展性
- 怎么优化以前的项目
算法:
- 给六个数,求出所有左边三个数和小于右边三个数和且有两个特定数不能相邻的所有排列
提问:
- 职业发展
三面(20分钟)
常规:
- 为什么选择直接工作(我甚至以为是HR面?)
技术:
- 讲一下Java类加载器
- 使用过哪些设计模式
- 工厂模式和模板方法模式的区别
业务:
- 给一个推荐服务,怎么计算其qps
算法:
- 两个有序数组,求两个数组中各取一个元素的最小差值
字节跳动-三面
一面(40分钟)
常规:
常规:
- 没有自我介绍
- 介绍项目
- 介绍实习业务
技术:
- 是否使用过多线程,一般怎么使用(线程池)
- 详系介绍线程池的原理和参数设置
- 介绍线程的状态机
- 进程和线程的区别
- CPU执行的是进程还是线程
- CPU的几种调度算法
- tcp和udp有什么区别
- 什么情况下用tcp和udp
- tcp滑动窗口机制的作用
- 四层负载均衡和七层负载均衡的区别
- 怎么实现四层负载均衡
算法:
- 给出二叉树右侧视图列表
- 股票问题,同时买卖一支股票和多支股票的情况下求赚钱的最大值
二面(1小时)
常规:
- 自我介绍
- 介绍项目
- 介绍实习业务
技术:
- tcp和udp的区别
- 你编程时什么时候会使用udp
- MySQL的底层实现,为什么用这种实现
- Redis数据过期策略
业务:
- 设计一个用户鉴权机制
智力:
- 给你三个硬币,抛正反概率均为50%,让你通过抛硬币从桌上的三支笔中等概率选一支
算法:
- 给定一个集合,输出其所有子集
- 怎么集合去重(判断两个集合是否一致)
常规:
- 自我介绍
- 介绍自己做过的项目
- 重点介绍一个最让你成长的项目,有哪些成长
- 介绍实习业务
技术:
- 区块链怎么保护电子合同的内容隐私
- 为什么要用多线程
- 怎么实现Socket通信
业务:
- 设计一个地铁路线查询系统,包括地铁、站台、换乘信息等,设计数据库和索引
算法:
- 求一个起始站和终点站之间的最短距离,边权均为1,要求输出最短路径(一开始说了floyd和dijkstra,后来意识到用bfs也可以)
感受
- 百度:一面非常正经;二面很皮,面试官一直在套当时我在头条实习的业务。面试感受良好。
- 美团:一面非常正经,面试官很耐心;二面聊了很久,气氛非常好,有探讨环节;三面有点像HR,时间很短,重点考查业务经验。面试感受良好。
- 字节跳动:一面给人一种海选的感觉,没让做自我介绍,直接开问,效率很高;二面面试官很耐心,但是最后我写的算法他觉得有问题,把我弄晕了,其实稍微改一笔就对了;三面面试官很严肃,重点考察业务能力,但也很有耐心。公司很大方,给了面试礼物、下午茶和零食,而且流程规范,面试感受很好!
分析
楼主不喜欢那些死记硬背的知识,在大厂的面试题中,这是属于基础知识,还是需要提前背诵一些。
除了阿里外,大厂的Java岗问的Java知识反倒很少,最近也没有遇到JVM、HashMap这种问题,可能和个人简历有关。
对于应用研发岗,面试官重点考察的还是你的业务能力,能不能通过思考分析为特定的场景找到解决方案。面试时即时觉得自己设计不出来,也要一点一点讲自己的思路,面试官可以帮助你分析,同时感受到你的问题解决能力。
相对于笔试来说,面试考察的算法并不难,主要还是二叉树、数组、dfs、dp、bfs、链表等,把Leetcode中等题刷一半就没有问题。
切记:不要死背面经,要有一个自己实际的项目,面试官喜欢从你的项目中进行考察,你可以引导他在你擅长的领域发问。
#腾讯##百度##字节跳动##秋招##校招##面经##美团#