写点什么

2021 最新京东、字节跳动「3 面面经」盘点大厂后端面试高频题

发布于: 2021 年 03 月 01 日

马上又要到金三银四,想着面试大军可能也过不了几天就要来了。所以今天给大家分享“京东和字节的面经,每家一二三面,我想大家可以自己测试一下能坚持到哪里。

京东三面

一面

1. 自我介绍

2. 常用的数据结构有哪些?并大说了一些操作的时间复杂度

3. 数组从下标最大的删与最小的删有什么区别?

4. 介绍主要用到的技术(技术栈)

5. 介绍一下集合类

6. list 和 set 的区别?以及各个实现类和底层实现

7. CopyOnWriteList 的特点及实现

8. 创建一个线程有几种方式?项目中怎么创建的?

9. 讲一下线程池

10. 你们使用的任务拒绝策略是那种?

11. 线上服务器最多可以创建多少个线程?

12. 线程的状态有哪些?(线程的生命周期)

13. 跟线程相关的方法介绍一下

14. HashSet 的底层实现

15. 介绍下 HashMap 和 CurrentHashMap

16. HashMap 线程不安全会导致什么问题?

17. 为什么 1.8 版本中会将链表转为红黑树?

18. HashMap 解决 Hash 冲突使用的什么方式?

19. HashMap 的 hash 函数讲一下(如何确定槽位)

20. JVM 的内存区域

21. 那个区域不会发生内存溢出?

22. JVM 运行时内存?

23. 新生代老年代讲讲

24. JVM 为什么分新生代老年代?

25. 垃圾回收算法讲讲

26. 类加载过程讲一下

27. 双亲委派模型讲一下

28. Spring 的启动流程

29. SpringBean 的作用域

30. SpringBoot 的特点

31. 相比于 SpringMVC 有什么好用的地方?

32. MySQL 的事务隔离级别

33. 讲讲 Java 中的锁?

34. 重入锁怎么实现的?

35. Synchronized 讲讲使用及原理

36. Synchronized 的优缺点?

37. retryLock 了解吗?

38. Java 里的轻量级锁?

39. 索引了解么?balabala

40. InnoDB 还能有什么索引

41. 为什么用索引?项目中怎么用的?

42. 讲一下 B+树的实现

43. B+树与 B 树有什么区别?

44. MySQL 的锁哪几种?

45. 行锁的实现?

46. 你们项目中用到 Redis 都是怎么用的?

47. 分布式锁你们是怎么做的?

48. 为什么不升级 Redis 版本?

49. Redis 的内存淘汰策略 LRU?

50. 讲讲项目为什么要用 Hystrix?

二面

1. 画项目架构图

2. 分布式任务调度系统是怎么实现的?

3. ElasticSearch 都用过那些查询方式

4. 如何做数据同步的?(MySQL 到 ES)

5. 如何做 CodeReview 的?

6. SpringCould 都用了那些组件?

7. 什么场景用到断路器(Hystrix)

8. 你是如何理解分布式锁的?

9. Redis 分布式锁你们是怎么用的?

10. Redis 你都用到那些命令?

11. Synchronized 讲讲

12. 说说轻量级锁,无锁的方式(CAS ABA 问题?)

13. 加锁我们是为了解决什么样的问题?

14. 说说 volatile 关键字

15. 了解什么叫不可变类么?或者是叫不可变对象?

16. final 的含义是什么?

17. 成员变量都是 final 修饰的话,如何进行赋值?

18. 如何关闭线程?

19. 手撕代码。牛客题霸上的原题,可以去看看:NC22 合并两个有序的数组

20. 我有 8 件事要做,最要要同意返回处理结果,每件事要进行异步的方式去做。你怎么完成这个需求

21. 我需要在项目启动时,将一些配置加载到内存中,你有什么方式能解决?

三面

1. 自我介绍

2. 讲讲做的项目

3. RabbitMQ 优缺点讲一下?

4. 分享一下你这个项目的挑战性吗?

5. 项目中有遇到什么问题么?

6. 讲讲 SpringCould 中用到的组件吧?

7. Feign 为什么效率低?

8. 为什么大部分服务对外不提供的接口都是 HTTP 的?(没太理解什么意思)

9. 讲讲项目中为什么会把 MySQL 升级为 ES?

10. CodeReview 你都是怎么做的?

11. list 跟 Set 有什么差别?

12. HashMap 跟 CurrentHashMap 有什么区别?

13. 讲讲 Redis 的数据结构

14. 问了问我现在的待遇,有什么想问我的?

字节跳动三面

一面

1. 介绍一下自己, 为什么选择出来看看机会

2. 聊项目, 警报怎么做的, 统一接入监控项怎么做的

3. 聊项目, 配置中心项目, 问实时配置推送怎么做

4. 讨论为什么选择所有的组件依赖放在配置中心中控制

5. 我现在要做一个限流功能, 怎么做?

6. 这个限流要做成分布式的, 怎么做?

7. 怎么抢锁?锁怎么释放?

8. 加了超时之后有没有可能在没有释放的情况下, 被人抢走锁?怎么解决?

9. 不用 zk 的心跳,可以怎么解决这个问题呢?

10. 假如这个限流希望做成可配置的, 需要有一个后台管理系统随意对某个 api 配置全局流量, 怎么做?

11. 某一个业务中现在需要生成全局唯一的递增 ID, 并发量非常大, 怎么做?

12. 算法题, M*N 横向纵向均递增的矩阵找指定数

13. 有什么想问我的?

二面

1. 平时用的工具链和技术栈是什么?

2. golang 踩过坑吗?

3. 这段 golang 代码有没有 bug?

4. Java 中 HashMap 的存储, 冲突, 扩容, 并发访问分别是怎么解决的?

5. 拉链法中链表过长时变形为红黑树有什么优缺点?

6. HashMap 的并发不安全体现在哪?

7. HashMap 在扩容时, 对读写操作有什么特殊处理?

8. ConcurrentHashMap 是怎么做到并发安全的?

9. Java 有哪些锁机制, 分别有什么特点?

10. 知道 CAS 吗? Java 中 CAS 是怎么实现的?

11. MySQL 的存储引擎用的是什么?为什么选 InnoDB?

12. MySQL 的聚簇索引和非聚簇索引有什么区别?

13. B+树和二叉树有什么区别和优劣?

14. 针对一个场景设计索引,考察的是联合索引与列选择性的知识

15. 现有一个新的查询场景, 要怎么解决?

16. 假如要查 A in () AND B in (), 怎么建索引?

17. 查 A in () AND B in () 时, MySQL 是怎么利用索引的?

18. 假如查询 A in (), MySQL 是针对 N 个值分别查一次索引, 还是有更好的操作?

19. 用过 Redis 的哪几种数据结构?ZSET 是怎么实现的?

20. zrange start, stop, 总长度为 n, 复杂度是多少?

21. Kafka 的消费者如何做消息去重?

22. 介绍一下 Kafka 的 ConsumerGroup

23. Kubernetes 和 Docker 用得怎么样?

24. 时序型数据库的存储结构是怎么样的?

25. LSM 树了解吗? 是一种什么存储结构?

26. 在生产中用过 Cassandra 和 RocksDB 吗? 量有多大?

27. Cassandra 的墓碑机制是什么 ?

三面

1. 聊项目和工作经验

2. 用 Kubernetes 的过程中踩过哪些坑?

3. 考虑一个业务场景: 头条的文章的评论量非常大, 比如说一篇热门文章就有几百万的评论, 设计一个后端服务, 实现评论的时序展示与分页

4. 假如用 id 翻页的方式, 数据库表如何设计? 索引如何设计?

5. 假如量很大, 你觉得需要分库分表吗? 怎么分?

6. 分库分表后怎么查询分页?

7. 分库分表后怎么保证主键仍然是递增的?

8. 现在需要支持深分页, 页码直接跳转, 怎么实现?

9. 瞬时写入量很大可能会打挂存储, 怎么保护?

10. 断路器内部怎么实现的?

11. 断路器会造成写入失败, 假如我们不允许写入失败呢?

12. 算法题: N 场演唱会, 以 [{startTime, endTime}…] 的形式给出, 计算出最多能听几场演唱会。用你最熟悉的语言把这个算法实现

13. 你用了贪心法, 贪心可能会存在什么问题?


最后

由于篇幅限制,题目答案解析没能展示出来。不过我已经把以上问题的答案整理成了面试题+答案的专题文档,有需要获取到参考借鉴的小伙伴



需要获取得话麻烦一键三连+评论,然后添加 VX(tkzl6666)即可免费领取


用户头像

添加我的微信:tkzl6666 获取文中资料 2020.09.19 加入

添加我的微信:tkzl6666 获取文中资料

评论 (1 条评论)

发布
用户头像
2021 最新京东、字节跳动「3 面面经」盘点大厂后端面试高频题
2021 年 03 月 01 日 16:37
回复
没有更多了
2021最新京东、字节跳动「3面面经」盘点大厂后端面试高频题