抖音、腾讯、阿里、美团春招服务端开发岗位硬核面试(上)

先报一下身份,笔者的师弟小民同学。小民同学应届校招从事服务端开发,参加校招面试以来,共面四个公司的服务端开发岗位:

  • 抖音,IES互娱
  • 腾讯,PCG 应用宝数据中台
  • 阿里,新零售供应链
  • 美团,到店事业部

目前为止,除了阿里还在等交叉,其他均已收到 offer,硬核技术实力。小民说自己是个技术渣,这是个要求很高(有点装 X)的同学

本篇文章与大家分享一下面试经历,希望能对参与一线互联网大厂面试的同学有些帮助。

由于内容较多,想要获取面试题的答案,记得关注公众号,下篇文章将会详解面试题的答案。有需要的同学,建议收藏本文

腾讯 PCG 应用宝数据中台

PCG 感觉疯狂招人,面试难度忽高忽低,面试形式也很多样,腾讯视频zoom牛客网都有,比较随意。

腾讯三面 20min 算法题+一个基础问题面试就结束了……一度以为自己直接挂了,体验很差。

准备的话操作系统计算机网络多看看。如果会 C++ 多准备下,面试腾讯问题不大。

腾讯一面

  • 项目讲了20分钟,问你做了什么,项目细节、你的成长之类的
  • Java锁 synchronized volatile
  • 快排如何变为稳定的
  • 排行榜如何实现
  • 如何查排行榜第2000个人的信息
  • java游戏服务器 如何通信
  • 算法coding,反转链表

腾讯二面

  • 工厂模式 场景
  • hashmap treemap
  • 数据库索引 不用二叉树原因是因为 二叉树可能会变为O(n)
  • 数据库如何加快 查询 :cache 索引 ,分表分库,
  • 网络粘包
  • 网络两次握手不可以?
  • Kafka水位(high watermark)
  • ArrayList 和 LinkedList 遍历操作效率比较?ArrayList更快 操作系统预读

腾讯三面

算法:带父节点的二叉树 中序遍历查找的上一个节点?
zookeeper如何体现AP

抖音,IES互娱

字节面试效率是最高的,一下午一面二面连着面试,之后隔两天就三面。每次面试HR都可以当天晚上给出面试结果,效率极高,给HR小姐姐送爱心~

面试准备,基础点到为止,只要不答得很差就没事。主要还是算法,基本上每轮两个算法题,白板写代码,要运行的那种,还是挺有压力。

抖音后台一面

50min

  • 线程池 堵塞队列为什么要用堵塞的

  • 一个线程在内存中如何存储

  • volicate ->内存重排序到底怎么避免的……

  • http 握手的 wait time

  • 访问一个 url 发生了什么

  • dns 是什么 原理

  • 跳表 和平衡树区别

  • 平衡树的种类

  • 计算题:扑克牌两张王的概率

  • 手写代码:合并N个链表 -> 优化为 log(n) -> null 判断 -> 不允许修改数据结构怎么实现

抖音后台二面

60min

  • 微服务注册中心原理
  • 注册服务怎么判断上线下线
  • 如果一个服务版本升级了 其他服务没升级怎么办
  • 为什么要使用spring cloud
  • jvm参数 为什么要配置-> 8G内存的机器 java进程最大配置多少
  • 策略模式 如何解藕 -> 项目中如何使用的
  • redis 持久化
  • redis 主从复制

算法题一

判断一个IP是否在国内。   
输入:
数据库中有几十万的国内IP段 (start_ip, end_ip)
 一个待验证的IP   
输出:
YES or NO

算法题二

用户在线波峰计算。   
输入: 用户日志(time, user_id, login | logout)    
输出:同时在线人数的峰值, 峰段(峰值的90%) eg (19:50到22:10, 峰值3亿,最低2.7亿)

抖音后台三面

没啥技术问题,领导约谈人生,职业规划、打算之类的。

阿里,新零售供应链

阿里面试难度最高了,基础每个知识点会问到你直到答不出来为止。时间也是最长的,基本上每次面试都 50min+,面试官问的问题很细节,发现你有含糊其辞的会详细问,基础一定要复习好,还要多看看源码。

面试流程还很长,一周一面,整个流程下来很累,笔者至今还在等交叉面。

阿里一面

  • mysql B+ B区别
  • mysql 隔离级别 -> MVCC如何保证的 -> 间隙锁怎么使用的
  • mysql hash索引?
  • redis 为什么快-> 系统设计的时候如何优化的
  • jenkins 如何用的
  • 策略模式 不同策略怎么转化的
  • Spring AOP如何实现的 -> 你项目中如何捕获aop异常 以及记录日志的
    java 枚举类型是否可以继承 (final)? 注解是否可以继承?
  • java内存结构
  • 对象创建过程
  • 类加载器  -> 双亲委派-> ClassLoad find load的区别(和面向对象有关系)-> JDBC 加载机制 -> 面向对象的原则
  • 滑动窗口 -> 客户端和服务器端分别有哪些区域(已确认 传输未确认 未传输)
  • volitale 怎么搞

阿里二面

  • 实习的工作?有什么感觉有难度的地方?和团队其他人怎么协调的?
  • 实习之后有哪些成长?
  • 业务可以改进的点?
  • 有没有博客?开源项目?
  • 未来三面职业规划?
  • 看了看我大三的面试记录?问了一下当时面试挂掉的原因?我说算法当时不行,顺便问了下我今年的笔试情况
  • 常用的语言?python和java比较
  • 最近在看什么书?

技术:HTTPS 和HTTP区别是什么? HTTPS 客户端服务器怎么交互的?

阿里三面

  • 项目:介绍 难点 实现细节 和二面差不多
  • 项目的平行对比……我们组的项目和平行项目(hadoop spark)相比 优势?
  • eureka源码 Hystrix源码
  • 分布式锁实现方式?
  • zk的原理 源码
  • Spring cloud/jdk设计模式 项目中的设计模式
  • 序列化方式
  • 最近在看什么书? 平时怎么学习的

美团-到店事业部

美团面试难度一般,基本上在问一些基础知识,多准备基础知识就可以。

美团一面

  • MVCC 在读方面有什么用途
  • Future的缺陷 CompletionService 在依赖任务之间是如何实现的
  • Tomcat框架的 selevet
  • 算法稳定性的实际作用
  • http 协议是什么 POST请求字段
  • 算法:第 K大的元素
  • 略去一些基础的问题,比较简单…

美团二面

  • 算法1:第一个从n个数字的数组中等概率的取出m个数字

  • 算法2:后缀树找最长重复的字符串

  • 算法3:反转最后K个节点

  • http 请求 api 超时如何实现的(定时器有关)

  • mysql 索引 orderby 之后的字段要不要加进去 -> 以及 mysql orderby如何实现

  • 操作系统两个进程写共享内存中一个位置 会不会出现不一致(和分页分段有关)

  • 略去一些基础的问题,比较简单…

未完待续…

分享了几大互联网公司面试的题目,笔者认为如果不提供答案以及小民同学的复习资料也是耍流氓的行为,下篇文章详细分析面试题答案以及复习参考和整理的面试资料。有需要更详细地了解面试,可以在文末留言。

(完)