没有绝对的天才,只有持续不断的付出。对于我们每一个平凡人来说,改变命运只能依靠努力+幸运,但如果你不够幸运,那就只能拉高努力的占比。
2022 年 1 月,我有幸成为了字节跳动的一名 Java 后端开发,去年我从外包辞职了,10000 小时后,走进字节跳动拿下了 offer。相信同行都清楚,从外包进大厂有多难,运气之余,也离不开我自己的脚踏实地,所幸每踏出的一步都留下了厚厚的脚印。
字节跳动 IES 互娱面试经历还原(抖音后台)
字节跳动抖音 4 面面试题
因为我个人有复盘的习惯,所以在面试字节跳动时,基本是做到了每一轮结束就把面试题给总结出来,当然总结出来的可能跟实际情况有细微出入,但相差不大,基本上是我记忆里的极限。
Java 部分:
- synchronized,lock,AtomicInteger 底层原理
- HashMap,ConcurrentHashMap 底层结构原理
- 讲讲服务注册于发现(这部分主要讲了 springcloud eureka 和部分 zookeeper,zookeeper 的选举机制)
- Spring AOP 的实现方式,siglib 能否代理 final 修饰的类?
- JVM 垃圾回收过程,并详细讲一种垃圾回收器
- 强引用,软引用,弱引用,虚引用应用场景
计算机网络:
- 拥塞控制和流量控制
- 快重传和超时重传
- 为什么四次挥手后客户端等 2MSL
- DNS 解析全过程
- http2.0,http3.0
- https 的连接过程
- CA 证书的验证过程
- RPC 框架了解吗?
- 如何设计基于 udp 的可靠传输?
- tcp 如何保证数据安全性的?磁盘如何保证数据不丢的?
操作系统:
- 阻塞 io 和非阻塞 io
- 进程和线程区别,通信方式分别是什么?
- 虚拟内存和物理内存
- linux 按 ctrl + c 中断的原理
- 协程高效在哪?
MySQL:
- Innodb,B+树,聚簇索引和非聚簇索引区别
- 一千万条数据,问 b+树大概多高?
- 为什么用 b+树而不是 b 树,红黑树?
- 在设计联合索引时需要注意什么?
- 联合索引最左原则的底层原理
- mysql 的 MVCC 以及是否解决幻读?
- 手写 sql,实现一个按时间降序的分页查询
- redo log,bin log,undo log
Kafka:
- kafka 的 rebalence
- ISR
- 如果新加进一个消费者会发生什么?
- 如何保证数据一致性?
Redis:
- RDB 和 AOF 区别
- 为什么 RDB 要 fork 子进程而不是线程?
- redis 基本数据类型
- zset 的底层数据结构,跳表何时增加高度?
- 分布式 redis,缓存和数据库读写不一致,答的延迟双删
- 面试官让随便讲讲 redis,所以还说了缓存穿透,击穿,雪崩以及处理方法
场景题和智力题:
- 打字的智能提示和纠错的原理,让你来设计,你怎么做?
- 如果有一个访问过的所有网站的记录集合,如何快速判断当前网站是已经访问过?(考虑布隆过滤器)
- 从一个网站下载的时候,进度条如何实现的?
- 64 匹马,八个赛道,问至少跑多少次能找到最快四匹马?
- 操作系统给你一块空闲内存,你如何设计使用和回收?
手撕代码:
- 柱状图中矩形最大面积 leetcode 84
- 查找第 k 小的数,用堆以外的方法做
- 给 m 个房子涂 n 种颜色,相邻房子不同色,costi表示给 i 号房子涂 j 颜色代价,求最小上色总成本。(LeetCode 原题)
- 其他:(HR 和 Leader 都问了一些开发性问题)
- 你认为遇到过最大的挫折是什么?怎么解决的?
职业规划
- 对字节跳动的认识
- 你认为字节是一家年轻的公司吗?年轻是核心竞争力吗?
- 你有没有崇拜的人
- 不考虑公司地理因素,最想要去哪个城市工作?
- 平时的兴趣爱好?
- 喜欢写博客吗?看什么书?
目前大厂春招已经开始了,如果想要最后再冲刺一下,或者是提前为今年的秋招做准备的,我强烈建议你看一下这份现在圈内疯狂转发的《Java面经》。朴实无华全是干货,毕竟这几个月面试竞争压力大,多看多学,知道面试官要问什么很关键,这样有很大概率在千千万万的面试者中脱颖而出。
这份文档有263页,相当的细,免费分享给大家,先展示部分截图内容。
有需要学习的,拉到文末,点击名片即可免费获取
部分目录:
内容截图:
Java基础部分
Java多线程部分
数据结构与算法部分
Linux命令部分
Java 内存模型 和 垃圾回收部分
内容太多我懒得一一截图了,你们领了自己去慢慢看吧,绝对有收获!
有需要的点击下方名片免费领取!
