251222 数美科技面试
2025/12/22大约 1 分钟约 405 字
个人
- 介绍自己
Java 基础
- List, Set, Map 接口
- Collection 和 Collections的区别
- ArrayList 和 LinkedList 的区别
- HashMap 的扩容原理等
- Hashtable
- ArrayList 扩容机制
- 重载和重写的区别,构造函数能不能被重写
- 包装类的装箱拆箱机制
- 接口和抽象类的区别,接口能否默认方法
JVM
- JVM 哪三个部分组成
- 运行时数据区
- 方法区
- JVM 的监控指令
- Full GC 的触发条件
- 如何避免 Full GC
并发 (JUC)
- ThreadLocal 底层的实现,为什么会内存泄露
- 线程池的七大参数
- 线程池的执行流程
Spring 全家桶
- Spring 的 IOC / AOP 原理
- Spring Boot 的自动装配机制
- Spring Bean 的类型
- Spring 中 Bean 注入的方式
MySQL
- MySQL 的底层数据结构,为什么用 B+树,B+树的优点
- MySQL 的索引类型
- 索引失效的场景
- Group By 中的 having 和 where 的执行顺序
- 唯一索引和非唯一索引,插入的速度比较
Redis
- Redis 的基本数据类型
- 缓存三剑客 (击穿、穿透、雪崩)
- 分布式锁的实现方案
设计模式
- 常用的设计模式,手写单例
- 单例模式饿汉和懒汉区别
- 单例如何线程安全的创建
手撕题
- 快排
反问
- 业务:搜索,agent 等
- 学习建议: 学习 kafka 学习一下 es,多研究源码学习优秀代码的写法
