2020年春招秋招各个大厂面试题总结(答案持续更新中)

一、阿里巴巴

1. 絮叨(可跳过)

阿里从今年开始,春季的暑期实习招聘开始有笔试了。想进阿里的小伙伴,一定要把握住春季的这次实习机会,因为阿里很多部门都是秋招不怎么招人,都是暑期实习生转正。

下面是阿里集团中有笔试的岗位:
在这里插入图片描述

考试时间很灵活,一般就固定在一周中的某几天。根据自己的时间安排,到某一天笔试时间了自行去考试就可以了,没有准备好就等下一场考试时间就好了。

在这里插入图片描述

整个阿里集团都是共享这一次笔试机会,面试如果挂了可以联系其他部门(如果有部门还有HC),不必再进行笔试了,所以笔试成绩也是有记录的。

2. 面经

今年阿里面试基本都是采用电话面,所以只要选择一个安静的地方接听就好,挺方便的。春季实习时候忘记整理了,回忆不起来了,所以这里讲的是正式秋招的。

  1. 开场自我介绍
  2. 你最熟悉的一种排序算法,讲讲如何实现的,分析时间复杂度?
  3. 数据结构熟不熟,讲解HashMap如何解决hash冲突的,是线程安全的吗?
  4. 讲讲TCP三次握手,为什么要三次握手?
    补充:我回答两次握手会出现丢包、延迟等情况,面试官说三次也会有这种情况出现,小伙伴们可以再思考思考,越是这类常见的面试题,面试官可能问的会越深透。
  5. TCP如何保证可靠性的?
  6. 进程和线程之间的区别?
  7. 列举下进程之间的通信方式有哪些?
  8. 线程有哪几种状态?
  9. 知道几种Java锁,什么是悲观锁和乐观锁?
  10. JVM中如何判断对象是否存活?我回答可达性分析算法的时候,又问了哪些可以作为root对象?
  11. 有几种GC算法,选择自己熟悉的一个详细讲讲
  12. G1收集器是采用的哪种算法?

通话时间68分钟,回头看看这些面试题会发现,面试官很想知道你熟悉哪些知识,对这些知识掌握多深。问题设置的也很全面,围绕数据结构、计算机网络、操作系统和JVM这些计算机基础知识问的。

二、字节跳动(大数据开发)

一面:

  1. 自我介绍
  2. 分别介绍下Hadoop的几个组成框架?
  3. HDFS如何进行写操作的?
  4. 详细介绍下MapReduce的工作机制?我重点回答了切片原理和Shuffle机制
  5. MapReduce有哪些优化方法?
  6. Redis熟不熟,介绍下它有几种数据类型?我回答了8种,面试官说只有5种,后来在网上搜了搜,版本也很多。
  7. 介绍下布隆过滤器的原理?
  8. TCP三次握手和四次挥手,什么时候进入Time_Wait阶段的?
  9. 手撕代码第一道是力扣原题:169. 多数元素
  10. 手撕代码第二道如何实现最小栈(也是力扣原题155. 最小栈),可能时间有限,没有让手写,说一下思路。
  11. 反问环节,有没有什么想问面试官的?

二面:

  1. 自我介绍之后,就全程几乎都是项目面,简历里有两个项目,被问到了很多细节上的。小伙伴们的简历上的项目一定要知根知底,辐射出的一些知识点也要掌握,比如我项目里有涉及到数据热点问题了,就会问到缓存雪崩、穿透之类的问题。
  2. 反问环节

三面:

没有自我介绍,上来就手撕代码。

  1. 用MapReduce手写一个wordcount
  2. 谈一谈mapreduce如何实现topK的
  3. 聊一聊在学习中遇到的困难,然后如何解决的?
  4. 技术栈是怎么学习的?
  5. 反问环节,我问了工作中主要在用哪些技术栈?

三、拼多多

一面:

  1. 自我介绍
  2. Java中的Object类有哪些方法?介绍下final关键字
  3. 重载和重写的区别是什么?
  4. HashMap和CurrentHashMap的区别,以及用到的锁?
  5. 给100万个数据,如何查找前10大个的数据?
  6. JVM启动时需要启动哪些线程?
  7. GC算法以及垃圾回收器有哪些,CMS的优缺点
  8. 介绍下Java锁,并发关键字CountDownLatch、Semaphore
  9. ZooKeeper原理、选举机制讲一下,在项目中怎么用到的?
  10. 手撕代码:给了一组的数字,把指定的数字移动到前面,其他数字的顺序不变。和力扣中的283. 移动零类似。
  11. 手撕代码:无序数组中找中位数。

二面:

  1. 自我介绍,聊聊项目
  2. mysql熟悉吗,介绍下索引,b+数,为什么不用avl树;
  3. 讲讲mysql的隔离级别,mvc机制;
  4. 分布式锁有了解吗?不熟,然后接下来又问了下Java锁
  5. Synchronized锁和ReentrantLock锁的区别?
  6. volatile作用和底层如何实现的?
  7. 讲讲进程调度算法有哪些?
  8. 什么是CAS,如何解决ABA问题的?
  9. 手撕代码:手写归并排序,并分析时间复杂度和空间复杂度

三面:视频面

  1. 项目介绍,问了很多涉及到的技术栈
  2. 如何实现负载均衡的?Nginx作用介绍下
  3. 问到了毕设方向,以及如何学习技术栈的

四、腾讯

一面:腾讯音乐

  1. 自我介绍
  2. 项目介绍,问了一致性哈希
  3. Reids作用是干嘛的,持久化机制
  4. http常见的几个状态码,http与https的区别介绍下
  5. tcp如何实现可靠性的,拥塞控制、流量控制
  6. 进程和线程的区别,线程的创建方式,有几个状态,wait和sleep方法?
  7. 线程池的增长策略和拒绝策略
  8. 愿不愿意转C ++,愿不愿意去深圳工作?不愿意

五、美团(大数据开发)

一面

  1. 自我介绍
  2. 项目介绍,数据是怎么来的,处理后如何进行存储?哪些是离线和实时处理的数据?
  3. 看过相关技术栈的论文吗?
  4. linux熟悉吗?介绍下常用的指令,查看内存,磁盘,进程,端口
  5. HashMap的底层原理?1.7和1.8的区别有哪些,与ConcurrentHashMap的区别
  6. 数据库的隔离性问题,脏读、不可重复度、幻读
  7. 介绍下Redis中RDB和AOF的区别,如何重写AOF文件?
  8. Hadoop集群需要启动哪些进程?
  9. 介绍下HBase的存储结构
  10. 反问

二面

  1. 自我介绍
  2. 手写代码:给一个字符串,找出里面最长的回文串;
  3. 手写代码: 给一张表,用sql语句查找工资最高的前10名员工的信息;
  4. 介绍下进程间通信有哪些,最快的是哪个?
  5. 信号量和互斥锁的区别?
  6. 讲一下AQS框架的原理
  7. JVM的类加载机制,为什么是双亲委派,不是的话有什么后果?
  8. 线程池有哪些,以及有哪些核心参数?
  9. Kafka如何保证数据安全的
  10. 介绍一下零拷贝模式
  11. HBase的rowkey设计需要注意什么?

三面

  1. 自我介绍
  2. JVM中哪些对象进入老年代?
  3. GC算法有哪些?自己用过哪些GC收集器?
  4. HashMap的1.8中在扩容方面做了哪些优化?
  5. Hbase的读写流程介绍下,以及和HDFS的读写流程的区别?
  6. 怎么处理大量的小文件?如何优化,提高mr的shuffle效率
  7. 介绍下spark RDD,说几个常见的算子,分别是哪种依赖?
  8. 手撕代码:统计一个文本中单词出现的频率,输出前10个
  9. 如果来美团工作,有什么规划?
  10. 反问

六、百度

一面:

  1. 自我介绍
  2. 手撕代码:层序遍历二叉树,返回一个数组
  3. ArrayList和LinkedList的区别,底层怎么实现的?
  4. Java中的OOM问题,怎么避免
  5. IO内存管理,IO模型
  6. Java锁了解哪些,挑一个熟悉的介绍下
  7. Synchronized的实现原理?与CAS的区别
  8. 如何解决数据倾斜,从哪些方面可以解决?
  9. 介绍下mysql中的索引引擎?怎么学习的mysql

二面:

  1. 自我介绍
  2. 手撕代码:给一个字符数组,输出出现频率最高的前K个字符;
  3. 手撕代码: 力扣原题 53. 最大子序和
  4. 输入一个网址,会发生哪些过程?
  5. TCP和UDP的区别是什么,有哪些应用?
  6. TCP的4次挥手,time_wait的作用是什么?
  7. 介绍下IO模型,select,poll,epoll的区别?
  8. Redis的持久化机制了解吗?介绍下两种方式的区别

七、总结

主要罗列了一下今年大厂的面试情况,可以看出来出了项目之外,考察的计算机基础主要设计计算机网络,操作系统,JVM,以及数据库,分布式缓存等。而手撕代码,几乎都是来源于力扣原题,希望小伙伴们重视下力扣刷题,不必追求刷的数量和难度系数,把力扣【Hot100】和【剑指offer】多刷几遍,应该没问题。像排序算法,LRU常见的也要多练习练习。

对以上常见的这些面试题目,包括其他小厂的,我会把答案按照专题系列的形式整理下来,比如【线程池系列】、【JVM系列】,每个专题尽可能地把所有常见考题的答案都整理出来,目前正在推出【Redis系列】。

欢迎大家前来批评指正,也可关注公众号:空心的梦,回复“ebook”领取学习资料!

在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值