拿到字节抖音拼多多美团三个offer的牛人,分享自己的面经和心得体会!

Posted Java_宇宁

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了拿到字节抖音拼多多美团三个offer的牛人,分享自己的面经和心得体会!相关的知识,希望对你有一定的参考价值。

前言

曾无数次假设过毕业找工作的样子,却没想到这个求职季走地异常平淡,在一个星期内相继接到了字节、美团的橄榄枝,之后又在打酱油的霸面中拿下了拼多多。

几经考虑之后,选了一个在很多人眼里也许不是最好,但我自己却觉得最合适的工作。人不能贪心地想把所有的好处都占着,而最好的也未必是最适合的。

所谓选择也许只是综合了多方面因素,就重避轻后做出的一个现阶段的决定。它会影响一段时间,但却未必是一辈子,毕竟后面的路上我们还会不断地自我修正。

在面试之前也在网上看过一些面经,所以从感谢前辈和回馈后来者的角度出发,还是想写点干货,不过我觉得真正有用的还是那点心得体会。世界上没有绝对的真理,只是单纯记录这一阶段自己的一些想法,希望能有所帮助。

面经

字节抖音面经

字节一面:

  • 疯狂问项目:你项目的大概结构、用了什么技术获得什么感受?
  • redis用在什么业务场景上面
  • 你如何主从同步的
  • 什么数据放缓存什么数据放数据库
  • 你业务中哪里用到了事务
  • 业务中哪里用到了锁
  • 业务中哪里用到了索引
  • 你对mvc 的理解、你对spring springmvc springboot 的理解、spirngAOP在实战中的应用、一个url请求到响应的所有流程、 知道其他并发模型么
  • 八皇后、用两个栈实现队列(以及高并发的设计)
  • 如何保证数据一致性?

(面试官问的特别偏实战,完全不按正常的套路出牌就有些蒙)

字节二面(60分钟):

  • 自我介绍
  • tcp如何保证可靠传输?
  • 仔细讲一讲拥塞控制,从慢启动开始,很细节,一直在追问
  • 四次挥手的状态,time_wait过多要怎么解决?
  • 泛洪攻击要怎么解决?
  • http3.0有了解吗?
  • Java中怎么保证并发安全的?
  • 讲讲你怎么理解synchronized和volatile
  • 都是什么场景下使用,为什么volatile不能保证原子性?
  • 你刚刚提到了内存屏障,讲讲你怎么理解的?Java的内存模型有了解吗?
  • 讲讲数据库中的锁机制
  • 幻读可以通过什么机制保证
  • 算法题:最长递增子序列,秒了
  • 给m个房子涂n种颜色,相邻房子不同色,cost[i][j]表示给i号房子涂j颜色代价,求最小上色总成本。(LeetCode原题)

(主要是Java并发那里聊了很久)

字节三面(50分钟):

  • synchronized,lock,AtomicInteger底层原理
  • HashMap,ConcurrentHashMap底层结构原理
  • 讲讲服务注册于发现(这部分主要讲了springcloud eureka 和部分 zookeeper,zookeeper的选举机制)
  • Spring AOP 的实现方式,siglib 能否代理final修饰的类?
  • JVM垃圾回收过程,并详细讲一种垃圾回收器
  • 快重传和超时重传
  • 为什么四次挥手后客户端等2MSL
  • DNS解析全过程
  • Innodb,B+树,聚簇索引和非聚簇索引区别
  • 一千万条数据,问 b+树大概多高?
  • RPC框架了解吗
  • 如何设计基于udp的可靠传输?
  • tcp如何保证数据安全性的?磁盘如何保证数据不丢的?
  • 手写sql,实现一个按时间降序的分页查询

字节四面:

  • 你认为遇到过最大的挫折是什么?怎么解决的?
  • 职业规划
  • 对字节跳动的认识
  • 你认为字节是一家年轻的公司吗?年轻是核心竞争力吗?
  • 你有没有崇拜的人
  • 不考虑公司地理因素,最想要去哪个城市工作?
  • 平时的兴趣爱好?
  • 喜欢写博客吗?看什么书?

(HR和Leader都问了一些开发性问题)

字节跳动面试总结(一些心得和小建议)

  1. 字节跳动对算法真的非常重要,提前刷题真的很有必要,不然基本上没戏,运气好的说不定还能被问到原题,当然你是算法大神,就不需要浪费时间在这上面了。
  2. 基本上每轮都有算法题,1~3道左右,难度不一,一般根据当次面试情况来的,会考虑的面试者的表现,但也不会太为难你。
  3. 拿到算法题时,不要立即作答,可以先和面试官聊一下自己的思路。

拼多多面经

拼多多一面(大约1h左右):

  • 讲一讲 final / finally的区别
  • try-catch-finally在不同情况下的执行顺序?
  • finally里return和外部的return谁覆盖谁?
  • wait / notify / notifyAll说一说?
  • notify唤醒线程之后可以立刻执行吗?
  • sleep / wait的区别?
  • Java 的线程有哪些状态?
  • Java 堆的分布?
  • 为什么要分出两块 survivor?
  • Mark-Copy 的流程?
  • 什么情况下会触发 Full GC?
  • Full GC 和 Minor GC 的耗时比例?
  • 老年代和新生代的空间大小比例?
  • HTTP 状态码列举一些?
  • connect 失败会报什么异常?
  • IO 分类?NIO 是阻塞的还是非阻塞的?
  • 聚集索引、联合索引、覆盖索引解释一下?
  • 口头设计一个表和索引,然后说一说哪种查询会走联合索引,哪种会走覆盖索引?
  • 聊项目,以及项目的困难点?
  • 手撕算法环节:有序数组 / 链表转平衡二叉树

拼多多二面(大约50分钟左右):

  • 自我介绍
  • 聊聊项目
  • TCP 的流量控制和拥塞控制说一说 查问:接收窗口的空间是怎么分配的?是不是多个 TCP 连接共用一块内存还是各自有独立的?
  • TCP 和 UDP 的区别
  • 网络的五层模型,每一层有什么协议?
  • PING 命令用的是什么协议(是 ICMP,我没答上来)
  • OS 的内存管理、进程管理说一说
  • 物理内存空间、虚拟内存空间?
  • 虚拟内存的作用?
  • 内存的连续空间不够分配的时候怎么处理?全局内存的空闲空间不够分配的时候怎么办?
  • 快排和归并的复杂度,快排的退化
  • 平衡二叉树各种操作的时间复杂度
  • AVL 树和红黑树的区别?
  • 红黑树的应用?JavaTreeMapAPI 为什么不用 AVL 树?
  • B 树和 B+ 树的应用?有什么区别?为什么 mysql 用 B+树?
  • Redis 和 memcache 的区别?Redis 何以高性能?
  • 异步非阻塞 IO 了解吗?(扯了点事件分发器的 Proactor 模型,面试官认可了)
  • 手撕算法:二分查找变形题,浮点数的等差数列,一开始公差是1.0,在某一个位置公差变为0.1,找到该位置
  • 手头上有哪些 offer ?

拼多多三面(HR面大约30分钟):

  • 对拼多多有什么了解?给拼多多做一个画像?
  • 家是哪儿人?对于未来的就业城市有什么想法?
  • 有女朋友吗?
  • 目前面了哪些公司?对于目前投的公司有什么偏好吗?
  • 有想象过在拼多多工作的一天吗?对薪资有什么要求?
  • 从哪些渠道了解互联网相关的讯息?
  • 如果拼多多把你挂了,你觉得会是什么原因?我和你聊了二十分钟,你觉得你的哪些非技术性的综合素质可能不如其他候选者?
  • 薪资
  • 你有什么想问的吗?

美团面经

美团一面:

  • redis集群,为什么是16384?哨兵模式,选举过程,会有脑裂问题么?raft算法,优缺点
  • JVM类加载器,自定义类加载器,双亲委派机制,优缺点,tomcat类加载机制
  • Tomcat热部署,热加载了解吗?怎么做到的?
  • cms收集器过程,g1收集器原理,怎么实现可预测停顿的?region的大小,结构
  • 内存溢出,内存泄漏遇到过吗?什么场景产生的?怎么解决的?
  • 锁升级过程,轻量锁可以变成偏向锁么?偏向锁可以变成无锁么?自旋锁,对象头结构,锁状态变化过程
  • kafka重平衡,重启服务怎么保证kafka不发生重平衡?有什么方案?
  • 怎么理解分布式和微服务?为什么要拆分服务?会产生什么问题?怎么解决这些问题?
  • 你们用的什么消息中间件?kafka,为什么用kafka?高吞吐量,怎么保证高吞吐量的?设计模型,零拷贝
  • 算法1:给定一个长度为N的整形数组arr,其中有N个互不相等的自然数1-N,请实现arr的排序,但是不要把下标0∼N−1位置上的数通过直接赋值的方式替换成1∼N
  • 算法2:判断一个树是否是平衡二叉树

美团二面:

  • Innodb的结构了解么?磁盘页和缓存区是怎么配合,以及查找的?缓冲区和磁盘数据不一致怎么办?mysql突然宕机了会出现数据丢失么?
  • redis字符串实现,sds和c区别,空间预分配
  • redis有序集合怎么实现的?跳表是什么?往跳表添加一个元素的过程,添加和获取元素,获取分数的时间复杂度,为什么不用红黑树?红黑树有什么特点?左旋右旋操作
  • io模型了解么?多路复用,selete,poll,epoll,epoll的结构,怎么注册事件,et和lt模式
  • 怎么理解高可用?如何保证高可用?有什么弊端,熔断机制,怎么实现?
  • 对于高并发怎么看,怎么算高并发,你们项目有吗?如果有会产生什么问题,怎么解决
  • 项目介绍
  • 算法:给定一个二叉树,请计算节点值之和最大的路径的节点值之和是多少,这个路径的开始节点和结束节点可以是二叉树中的任意节点

美团三面:

  • 项目介绍
  • 线上有遇到大流量的情况么,产生了什么问题,为什么数据库2000qps就撑不住了,有想过原因么,你们当时怎么处理的?
  • 限流怎么做,如果让你设计一个限流系统,怎么实现?
  • 算法:求一个float数的立方根,牛顿迭代法
  • 什么时候能入职,你对岗位的期望是什么?
  • 你还在面试其他公司么,目前是一个什么流程?

如何复习

Java笼统一点来讲,无非是:JUC、多线程、锁、集合、基础知识、框架、分布式。

一个知识体系一定要一块学,

比如 JUC,这个是一个很大的包,系统学习会比较消耗时间,但是收益也是比较不错的,能够吧一些细节的点都串联起来,这样记忆比较更深刻一些

比如 HashMap 可以揉碎了学习,为什么0.75的负载因子,为什么要无符号右移16位?为什么是2的倍数?为什么是8而不是7、9?

工具类的东西很容易被替代,曾今的 SSH 现在的 Spring-Boot、Cloud,也许过几年之后又是新花样,但技术底层是差不多的原理,了解了底层,不仅有助于问题的排查,对于程序猿的整个晋升的道路而言,更是不错的一种思维、学习方式。

忌讳东一榔头,西一棒槌的学习,那样知识为了应付面试,面试过了,很容易就会忘。

一般这样的一个顺序:

  • 看源码,抠细节
  • 看博客、公众号的相应解释
  • 自己总结一遍,写到自己的MD文件或者博客里
  • 一周之后,或者几天之后在复习一遍,(艾宾浩斯遗忘曲线)温故而知新

刷题

刷题两个好地方:

  • 牛客,也是我推荐大家去的,所有题目免费,而且基本上都有大佬们讨论
  • LeetCode,这个也可以,但是相应地会收取一定的费用,VIP之类的

字节跳动对于算法十分钟爱,几乎每一面都会至少两到算法题,所以,要想进字节,至少俩月算法题刷起来。

不要扯什么算法不重要,程序猿搞不定算法就像厨子不会颠勺,司机不会挂挡。

Java面试复盘笔记

《Java核心知识点合集(283页)》

内容涵盖:Java基础、JVM、高并发、多线程、分布式、设计模式、Spring全家桶、Java、MyBatis、ZooKeeper、Dubbo、Elasticsearch、Memcached、MongoDB、Redis、MySQL、RabbitMQ、Kafka、Linux、Netty、Tomcat、数据库、云计算等
在这里插入图片描述

《Java中高级核心知识点合集(524页)》

在这里插入图片描述
这些内容均分享给出去,需要完整版的朋友,点击这里获取,备注“CSDN”一键三连提高通过率

《Java高级架构知识点整理》

在这里插入图片描述

《架构设计》

在这里插入图片描述

《Java高并发核心编程》734页

在这里插入图片描述

《数据结构和算法》

在这里插入图片描述

《1000道 互联网Java工程师面试题 (485页)》

在这里插入图片描述
Java 学习资料,包含了 Java 工程师必学的四大开源框架–MyBatis、Spring、Spring MVC、Spring Boot,视频资料、大厂面试题等,想要的朋友末尾可以扫码免费领取。👇👇👇
在这里插入图片描述
想要的朋友点击这里免费领取!【BAT一线大厂面试题】
img
在这里插入图片描述

经验总结

这是我在工作、面试中学习并总结到的一些知识点, 都是一些比较典型的、常被问到的问题。如果你平时没有注意去总结的话,那么当你面试被问到的时候可能会是一脸懵圈,就算这个问题你知道怎么回事,但是你平时没有认真总结,你也可能会出现逻辑混乱的情况,从而错失工作机会。

有些知识点不经常使用就会忘记,但是面试还会问,对此,我也是深受其害,所以我决定将这些遇见的问题整理下来,分享出去,帮助更多的人,我们共同进步。所谓“温故而知新”,没事的时候多翻看一下这些知识,没准就会有新的收获。你没时间整理的东西,我都帮你写好了。

以上这些内容均免费分享给大家,需要完整版的朋友,点击这里获取,备注“CSDN”一键三连提高通过率
在这里插入图片描述

以上是关于拿到字节抖音拼多多美团三个offer的牛人,分享自己的面经和心得体会!的主要内容,如果未能解决你的问题,请参考以下文章

两年半开发经验,从360离职后,拿到钉钉抖音小红书美团等8家公司的offer

凭借这份python面试宝典,我成功拿到了字节跳动腾讯阿里巴巴美团小米等六家大厂offer

优秀!研二实习生“阿里+字节+拼多多+美团”四杀offer

秋招面试专题解析Android程序员如何拿到爱奇艺.字节跳动.抖音offer

校招面试经验小分享,阿里腾讯美团字节实习offer

来晚了,秋招五投大厂,成功拿下三家Offer,最终入职美团,分享我的美团1-4面(Java岗)