前言:
没有绝对的天才,只有持续不断的付出。对于我们每一个平凡人来说,改变命运只能依靠努力+幸运,但如果你不够幸运,那就只能拉高努力的占比。
2020 年 7 月,我有幸成为了字节跳动的一名 Java 后端开发,正如标题所说,我从外包辞职了,10000 小时后,走进字节跳动拿下了 offer。相信同行都清楚,从外包进大厂有多难,运气之余,也离不开我自己的脚踏实地,所幸每踏出的一步都留下了厚厚的脚印。
A:字节跳动 IES 互娱面试经历还原(抖音后台)
<1> 字节跳动抖音 4 面面试题
因为我个人有复盘的习惯,所以在面试字节跳动时,基本是做到了每一轮结束就把面试题给总结出来,当然总结出来的可能跟实际情况有细微出入,但相差不大,基本上是我记忆里的极限。
Java 部分:88
-
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 树,红黑树?