字节-飞书-后端-一面-3.13
总时长大概55min,25min八股,30min算法
一、开场类问题
- 简单做个自我介绍
- 项目问题有没有印象比较深刻的项目难题?项目中有没有遇到比较棘手的问题?是怎么解决的?
二、Java 基础
1 线程安全集合
- Java 中线程安全和非线程安全的集合有哪些?举例说明
- ConcurrentHashMap 的实现原理?
2 泛型
- 什么是类型擦除?
- ? extends T 和 ? super T 的区别?
三、JVM
- JVM 的垃圾回收算法有哪些?
- 刚才讲的 GC 机制是在哪些垃圾回收器中使用的?
四、Java 并发
- 线程池的核心参数有哪些?
五、Spring / Spring Boot
- Spring Boot main 函数启动过程了解吗?
- Spring Boot 启动的 13 个步骤(方法)了解吗?
- Spring 的@Repository 和@Reference的区别
六、MySQL
1 锁机制
- MySQL 有哪些锁?
2 事务隔离级别
- MySQL 事务隔离级别有哪些?
- 每种隔离级别会产生哪些问题?
七、Redis
- Redis key 设置 TTL 后是如何实现过期删除的?
- Redis 为什么快?
八、工程问题
- 项目中遇到过依赖冲突 / 包冲突吗?怎么解决?
九、SQL 题
有一张表:
student_score
userId
subject
score
需求:
- 查询班级总分前 10 的学生(返回 userId 和总分)
- 查询总分超过 300 分的学生
十、Java 编程题(Lambda)
给定:
class Student {
Integer userId;
String userName;
}
- 将 List<Student> 转换为 Map<userId, List<userName>>
要求:
- userId 为空的过滤
- 同一个 userId 的 name 收集到 List
- 使用Java8的Lambda表达式
十一、算法题
- 单链表倒数第 k 个节点
十二、反问环节
- 面试流程是几轮?
- 什么时候出结果?
- 面试官建议提升哪些方面?
查看5道真题和解析