Markdown Note
4.18pdd一面
最近更新:2026/04/29
1、手撕BST的第k小数字 2、hashmap原理 3、红黑树是怎么查找的: hash查找---equals比较(compareTo)----
identityHashCode():JVM 给的对象身份 hash和hashmap用hash算法对key进行运算不同,这个和对象内存地址相关
4、反射: 5、Spring什么地方用到了反射 6、讲一下AOP和动态代理 Spring有哪几种常见的代理方式 7、controller和service有什么区别,为什么?
- controller:接收 HTTP 请求- 参数解析- 返回 JSON / 页面- 调用 Service
- service:业务逻辑处理、事务控制、调用 DAO
都是实现的@Component
8、并发编程:synchronized和Renntrelock对比
分别的应用场景:
如果只是简单互斥同步,推荐使用 synchronized,代码简洁且由 JVM 自动管理锁释放。
如果需要更灵活的锁控制,比如 tryLock 避免死锁、超时锁、公平锁、可中断锁,或者多个条件队列的线程通信场景,则使用 ReentrantLock。
因此一般业务代码用 synchronized,复杂并发框架用 ReentrantLock。
9、讲一下MySQL的索引 有哪些常用的索引:
10、B+树的叶子节点存储什么,为什么MySQL要这样设计 减少回表
11、字节的索引优化: 加的核心索引有哪些:读多写少 租户id+工单状态(常用);四个字段的联合索引;多个索引 5kw条数据,这个表的查询效率的怎么样(3kw) 12、ZSet底层 13、这个评价的业务意义
总结 HashMap的红黑树原理 Java的排序比较器不熟悉 反射---动态代理----AOP JUC