Skip to content

20届,最终选择了字节。

北京滴滴(offer)

一面

  1. 自我介绍
  2. 介绍自己做的项目,难点有哪些,怎么处理的?
  3. 拆分读服务是微服务的什么思想?
  4. 拆新的服务和之前服务水平扩展 有什么不一样?
  5. 数据库层面有没有数据扩展?
  6. QPS 8W 总单量是多少 ?
  7. 本地缓存怎么保证数据一致性?
  8. MQ 如果挂了 怎么办?
  9. Redis 集群了解吗?
  10. 数据清洗怎么做的?
  11. 如何保证最终一致性?
  12. 顺序消息如何保证?
  13. ES 怎么用的?数据量级多少?为什么用ES 不用Hbase?
  14. Zookeeper 作为注册中心有什么问题?如果 海量服务同时重启会出现什么问题
  15. 算法:环形链表 II

二面

  1. 项目介绍
  2. 大促期间服务总QPS , 多少个服务,每个服务多少个线程
  3. 服务器线程数量根据什么来配置?
  4. Redis 集群的工作原理? gossip协议? 写和读的流程? CRC16 再取余 这个计算 在client 还是服务端?可以决定哪个key 放在哪个节点吗?
  5. Redis 主从同步流程?
  6. Redis 的 hash结构 怎么 rehash的?如果渐进式时,这些的key突然都不访问了 会有什么问题
  7. MySQL innodb 引擎的索引结构,B+树一般都多高? 层高怎么计算?
  8. 联合索引 abc where a = 3 and b > 3 and c= 3 怎么走索引?
  9. 如果MySQL 表中有一个字段很大有几K会有什么问题?
  10. 索引下推了解吗?
  11. 场景设计:如何设计一个会议室预定系统?
  12. 算法: 给数组arry 和值 x 计算 数组 array 中差值绝对值为X的数对;

三面(HRBP)

  1. 离职原因;
  2. 用三个词评价一下你的领导;
  3. 未来规划;
  4. 你有什么缺点;
  5. 遇到过最大的问题;

总结

一面整体上全是项目和场景考虑,因为他们是用go开发,我之前是用Java,所以一直在问中间件,没有Java八股文,不过中间件问的蛮深,面试体验很好;

杭州网易(offer)

一面

  1. 讲一下JUC 下的线程池,线程池参数以及提交任务后怎么执行
  2. Lock 的加锁和解锁过程和公平锁和非公平锁实现原理
  3. Conditional 源码有没有看过
  4. 阻塞队列 源码有没有看过
  5. JVM 调优讲一下?非常细 什么命令 怎么分析的 面板什么样子都有问
  6. CMS + ParNew 算法的对象分配和垃圾回收流程
  7. 什么时候会出发full gc
  8. old区什么时候触发CMS GC 什么参数 配置大了会怎么样 配置小了会怎么样
  9. 为什么会产生浮动垃圾
  10. MySQL 的隔离级别,MVCC 原理 ,乐观锁 在什么隔离级别才能使用?
  11. Kafka 的ISR是什么,HW呢?怎么保证可靠性, Kafka 怎么实现顺序消息?为什么Kafka的broker上topic越多 效率越慢?
  12. 讲一下项目的完整流程 数据模型,多个版本经常变化怎么控制的?(每个校验模块提供原子能力 可以配置化,如何设计)
  13. 分布式事务 是怎么保证的, MQ的方式 如果本地执行成功同时服务挂掉了 这个MQ没有记录 怎么办?

二面

  1. Zookeeper工作原理讲一下,有没有看过源码;
  2. 讲一下你负责的业务的服务架构,以及你们部门的服务架构;
  3. 你觉得现在架构有什么不合理的地方?
  4. 有没有看过什么中间件的源码?
  5. 区块链了解吗?

总结

因为简历投错了部门,投到了区块链,所以问我很多源码,比较底层的东西,因为做区块链开发可能会难一点,所以会问有没有看过源码,整体面试体验很好;

Shopee(offer)

一面

  1. 项目问题( 聊了 30分钟);
  2. MySQL 主从同步原理;
  3. MySQL 索引优化;
  4. 线上问题定位 以及优化过程;
  5. Redis 集群 的工作原理,集群写入数据原理, 增删节点 如何数据同步?Redis的hash过程;
  6. Kafka 讲一下,offset存储原理;
  7. 算法: 1.栈实现队列 2.三数之和

二面

  1. 介绍一下自己的亮点;
  2. 讲一下做的项目;
  3. Kafka 讲一下;
  4. MySQL 的索引讲一下;
  5. Redis 的key过期 怎么删除的 ?主动删除 和被动删除;
  6. Redis 击穿 雪崩 穿透 和解决办法;
  7. MQ 同步信息怎么保证数据的一致性和实时性?
  8. JVM调优过程说一下;
  9. 算法:1.二叉树的前序,中序,后序遍历; 2.最长重复子数组

总结

参加的是周末专场面试,一个周末面完+出结果,整体是项目+中间件,算法每一面都是两道一个easy,一个mid,整体面试体验很不错;

B站(offer)

一面

  1. MySQL 行级锁,表级锁。意向锁 加锁时机是什么? 项目中有没有使用过意向锁?
  2. 如果查询语句有没有索引,SQL调优过程?
  3. Spring 事务注解原理,事务传播机制,使用过什么传播机制?
  4. RocketMq 消费者重平衡 会有什么问题?重复消费? 消费失败? 这些场景如何处理
  5. 数据一致性怎么保证? 分布式事务怎么实现?
  6. 动态代理有哪些,什么区别,使用注意方式;

二面

  1. 项目主要负责什么?
  2. 数据清洗怎么做的?
  3. Kafka 怎么保证消息一定被消费?
  4. qps8W 多少台机器? 什么配置? 总qps? 线程数量? mysql 版本? 走的什么索引? 会不会回表?
  5. 说了自己加redis和本地缓存 然后问我本地缓存的配置?
  6. 如何保证Redis,DB数据一致性?双删策略 为什么要多删除一次?
  7. HashMap的扩容过程? 会发生什么问题?
  8. MyBatis 的接口和mapper怎么对应执行?
  9. 还做过什么技术优化?
  10. 分布式锁怎么实现? 分布式锁怎么实现阻塞队列?
  11. 本地锁 怎么实现阻塞队列的唤醒的?
  12. Zookeeper 怎么实现Cp?
  13. ZK 怎么选举的 怎么投票的?
  14. 算法:1.多线程循环打印ABC; 2反转链表。因为是现场面试,纸上手写,所以给了两道题目难度都还好

三面

  1. 你们部门的服务架构讲一下?
  2. 接口优化怎么做?
  3. 什么场景下,都用过哪些并发?你用多线程的时候 Synchrionzed和ReentranLock怎么选择的?选择原则是什么?
  4. 压测和故障演练做过吗? 你都扮演什么角色?有什么收获?
  5. 用的什么rpc和注册中心?有什么优缺点?
  6. 未来三五年规划?期望薪资?

总结

因为是使用Java的,所以Spring问的比较多,一面比较贴合实际,都是面试官开发中常见的问题;二面对项目整体做个梳理和一些中间件知识;三面从架构和优化,压测等角度去问看看广度和高度吧主要;

携程(offer)

一面

  1. 讲一下ArrayList和HashMap 底层数据结构,优缺点,使用方式;
  2. CuurentHashMap有用过吗?
  3. CAS 设计思路和原理?
  4. ThreadLocal底层原理?
  5. 什么场景使用的ThreadLocal?
  6. 什么场景使用了多并发?
  7. 用到了Java jdk8的哪些新特性?
  8. Lambda怎么用的,Stream的实现原理?
  9. 除了刚刚的场景 还有什么场景使用过异步任务,并发任务计算结果后做聚合 怎么做?
  10. 网络编程 用过吗? IO讲一下
  11. 你开发中都用到了什么设计模式?
  12. 工厂模式的设计理念是什么?有什么好处?体现了什么编程思想?
  13. 适配器模式了解吗? 策略和适配器模式有什么区别,你为什么选择用策略模式而不是适配器原因是什么?
  14. 设计模式都有什么开发原则?
  15. JVM调优经验 说一下做了什么?
  16. JVM 知识你讲一下?
  17. Spring 事务注解Transaction 实现原理?
  18. A方法调用B方法,如果B方法开启事务 则直接用B方法的事务,如果是你 你怎么设计怎么做?
  19. InnoDb的默认隔离级别,可重复读,解决了什么问题 没有解决什么问题?
  20. 什么场景下使用了ES?
  21. 倒排索引 是什么讲一下?
  22. 为什么ES检索比较快?
  23. 你使用MQ(RocketMq和Kafka)的应用场景什么?

二面

  1. 服务器都多少线程,发起一个请求去调用第三方,是新增加一个请求吗?如果服务器线程使用完了怎么办?
  2. 灰度上线流程怎么做的?
  3. 数据洗刷 怎么做的 双写 怎么避免循环写?
  4. ES 数据结构是怎么样的?
  5. 25匹马 5个赛道 怎么跑 才能最少批次找到最快的三匹马?
  6. 分裤分表下 怎么做业务逻辑查询?怎么生成一个全局唯一的id?
  7. 场景设计:给一个10G的文件,里面只有两行记录是一样的,如何找出(电脑内存只有500M)

算法:有效的括号

三面

  1. 负责的·项目 业务流程和 服务架构都说一下?(20min)
  2. bigdecimal 使用需要注意什么,还有什么其他编程时需要注意的规范?
  3. MySQL 库表上线之前需要做什么工作?
  4. 索引为什么是B+树结构,MySQL都有哪些引擎,有什么区别?
  5. MySQL深度分页怎么解决?
  6. ThreadLocal原理?使用需要注意什么?
  7. 如果做海外的业务,使用数据库需要注意什么地方?时区
  8. 有没有做过海外业务?多语言,多币种有没有什么解决方案?

总结

感觉携程的面试比较中规中矩,基本上所有知识面都有考察到,也比较符合实际,项目,基础知识,场景设计,算法,代码规范都有,但是相应更看重 项目和基础知识和代码规范,面试体验很好;

阿里(曲折的面试经历)

阿里一共面了三个部门:淘宝,饿了吗,供应链

年前面淘宝两面,到三面没有hc了,搁浅;饿了吗有同学联系,面完两面,结合自己情况不再考虑这个机会;年后又面了供应链,后来有offer,没有继续走流程;

淘宝一面

  1. 先聊了20分钟项目 问难点 如何解决
  2. HashMap在使用时需要注意什么地方 至少说出四点;
  3. 你的多并发控制是怎么使用的,都有哪些多并发控制手段
  4. 线上有死循环代码 你怎么排查定位到
  5. MySQL的 事务 实现原理和隔离级别
  6. 对于索引,你觉得在开发中需要注意什么?
  7. 分布式锁的实现 和 底层原理 以及都有什么问题?
  8. NIO 和 AIO 的区别
  9. Kafka 的 架构和工作原理?
  10. Kafka为什么这么快,顺序写 是这么实现的?
  11. 你觉得你做的业务的价值是什么 解决了什么问题?
  12. 你觉得 你做的对业务最有价值的一件事情是什么?
  13. 笔试:1.找出代码的bug 一段多线程代码 找出三个bug
  14. 给你Memcached Clinet 实现一个消息队列

淘宝二面

  1. 设计方案主要做哪些事
  2. 线程池的阻塞队列有几种,你们用的那种,拒绝策略有几种,你们用的哪个,为什么
  3. 线程池里面的execute 和 submit 方法有什么区别
  4. 线上线程池打满,如何优化的?JVM 你了解什么? CMS 为什么会有浮动垃圾? 什么时候会进行CMS GC? 什么时候会进行Full GC?CMSGC和 FULL GC有什么不一样?
  5. spring中bean的生命周期
  6. explain 执行分析,你们主要关注哪些字段,为什么
  7. 线程池核心参数
  8. java内存模型讲讲,内存屏障是干嘛的
  9. Zookeeper 作注册中心 和nacos 和eruka 有什么差异 ?基于什么理论选择?
  10. JVM调优经验说一下

总结

很遗憾面到三面没有hc了(拥抱变化),面试更贴合实际,比如:HashMap在使用时需要注意什么地方 至少说出四点,看起来很简单,但是需要知道HasHMap的结构和工作原理,JVM和Spring问题会多一点,也会关注你的业务Sense,对业务有没有推动;

字节(offer)

一面

  1. 项目问题(20min)
  2. binlog 和 redolog 有什么区别?
  3. MySQL 不同存储引擎有什么区别
  4. Kafka 为什么这么快,主从同步怎么做的?HW 和LEO分别是什么;
  5. 让你实现一个消息中间件,你会设计哪些模块?
  6. ES查询流程?
  7. B+树的特性?
  8. Select / Poll / Epoll 的区别?
  9. Redis 集群工作原理? 如何通信?MOVED和ASKED 有什么区别?
  10. 服务设计:设计一个短链系统;
  11. 算法:接雨水

二面

  1. 项目问题(10min)
  2. JVM 的内存模型
  3. G1 和CMS GC过程都说一下,分别适用什么场景? JVM调优过程说一下?
  4. 内存溢出和内存泄漏?什么情况下会出现? 怎么避免?
  5. HTTPS 的工作原理? 有哪些常见的加密算法?
  6. 顺序消息 如何实现?
  7. 数据库索引的原理?联合索引和索引下推?
  8. Redis数据结构?为什么用快表而不用平衡查找树?
  9. Redis主从复制过程?
  10. 一个数组 int[10] 在JVM内存上怎么分配的?多大空间?
  11. 场景设计:设计一个分布式限流器
  12. 算法:寻找重复的子树

三面

  1. 项目介绍;
  2. DDD了解吗,讲一下?
  3. RocketMQ有什么缺点? Kafka有什么缺点?使用场景分别是什么?
  4. 用过什么设计模式?
  5. 使用Redis 需要注意哪些地方?
  6. 工作遇到过什么问题? 如何解决的?
  7. 工作中和同事遇到冲突,如何解决?
  8. 场景设计:公司的各系统都有计数需求(如头条文章的阅读数、评论数、点赞数等),请设计一个统一计数服务。
  9. 算法:LFU 缓存
  10. 还有一些忘记了。。。

总结

一二面考察比较全面,以技术问题为主,涉及面较广;具体包括:计算机基础、编程语言、数据结构与算法、系统设计题等一些问题会涉及到原理与细节;三面也会看反应力、方法论。面试体验比较好。

文章来源于自己总结和网络转载,内容如有任何问题,请大佬斧正!联系我