没有绝对的天才,只有持续的努力。对我们每个普通人来说,改变命运只能依靠努力 幸运的是,如果你不够幸运,你只能提高努力的比例。
2022 年 1 月,我有幸成为字节跳动的一员 Java 后端开发,去年我从外包辞职1万 小时后,走进字节跳动赢了 offer。我相信我的同龄人都知道从外包到大工厂有多难。幸运的是,我离不开自己的脚踏实地。幸运的是,每一步都留下了厚厚的脚印。
因为我个人有复习的习惯,所以在面试字节跳动时,我基本上在每一轮结束时总结了面试问题。当然,总结可能与实际情况略有不同,但差别不大,基本上是我记忆中的极限。
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 内存模型 和 垃圾回收部分
内容太多我懒得一一截图了,你们领了自己去慢慢看吧,绝对有收获!
有需要的点击下方名片免费领取!