字节跳动 - 日常实习 - 朝夕光年
字节跳动 - 日常实习 - 朝夕光年
前言:凭记忆写的,可能存在问题描述不准确及缺漏。业务中台挂了之后,期末考试周被 HR 捞了试一下,算是去年的面经。
时间线:12.28 收到面试通知 —— 12.31 一面 —— 1.7 二面 —— 挂
一面
-
你的序列化如何做的?
-
NIO 和 BIO 的异同?
-
负载均衡算法的实现?
-
讲讲 Netty 的 Boss 和 worker 线程组?
-
讲讲 Java 以及 Tomcat 的类加载器?
-
讲讲 TCP 和 UDP 的区别?
-
为什么使用 TCP 不使用 UDP,使用 TCP 时可能遇到哪些问题?
-
TCP 相比 UDP 的缺点?
-
讲一讲 CPU ?
-
讲一讲 Cache 的结构,以及 L1、L2、L3 Cache
-
多核多线程,多线程与Cache 的关系 或者 说多线程下Cache 如何运作?
-
抛开 JMM ,知道 C、C++ 上 volatile 的实现吗?
-
内存屏障如何将缓存脏数据刷到主存的?
-
知道CPU 的原子操作吗?
-
讲讲 AtomicInteger 和 volatile 的原理,以及前者如何实现原子性的,二者的区别?
-
讲讲 ConcurrentHashMap ?
-
讲讲什么时候使用表锁、什么时候使用行锁?
-
InnoDB 和 MyISAM 的区别?
-
能细说一下 InnoDB 引擎吗?
-
Redis 为什么快?
二面
开篇无自我介绍,就一个数据结构问题不断扩展加一道算法题
-
详细讲讲 ArrayList 和 LinkedList 这两个数据结构?LinkedList 那种场景比 ArrayList 更好?
-
算法结束后,就让自己介绍一下项目