字节后端一二三面面经(已上岸)
字节跳动(后端开发工程师 — 上海创新业务)
笔试
- 4.12 笔试
一面
4.18 一面(视频面 - 40min)
- Java 内存模型
- 两个进程的变量的地址相同,它们之间的写操作有相互的影响吗
- 进程通信的方式
- 关系型和非关系型数据库
- 事务的特点
- 原子性和一致性的实现原理(不会)
- TCP 和 IP 为什么要四次挥手
- Close_wait 状态是什么(不会)
- 甲乙轮流射箭,两个人命中靶子的概率都是0.5,谁先射中就赢,问甲获胜的概率(答案2/3)
- 算法题:给出一串数字,去掉k个数,问能形成的最小的数
二面
4.18 二面(视频面 - 50min)
- Java HashMap
- put 数据的过程
- 链表非常长会怎么样
- 什么情况下会转红黑树(不会)
- ConcurrentHashMap 作的改进
- 常见的垃圾回收算法
- 引用计数的循环引用的情况
- MySQL 的联合索引
- 索引的底层结构
- 100个人坐座位,第一个人随机坐一个座位,后面的人优先坐自己的座位,只有当自己的座位被占了才会随机坐,问第100个人能坐到自己座位的概率(答案50%,不会)
- 段页式管理下,CPU取数据要几次访存
- 算法题:给出一个数字串的排列,找出下一个比当前数更大的一个排列(不能用next_permutation)
- Java HashMap
三面
- 4.18 三面(视频面 - 55min)
- 场景题:对 HashMap rehash 的时间进行优化
- 我第一次答了:事先预估 capacity,直接申请相应大小
- 我第二次答了:扩容时仅申请数组但不拷贝,当get命中时顺便拷贝过去
- 缺点是什么(可能会生成很多数组)
- 再优化(不会)
- 手写单例模式(饿汉、DLC懒汉)
- 算法题:给出一个转义后的字符串,问原串是什么?(写得不好)
- 场景题:对 HashMap rehash 的时间进行优化
前两面的表现还稍微凑合,第三面就有点拉跨了。
字节效率很高,三面即在一天内完成,今天4.23已收到offer,挺开心的哈。