京东java后端面经
一面
主要聊了项目和实习,比如碰到的挑战、收获啥的。
问了:`@Component` 和 `@Bean` 有啥区别?Spring 事务注解的机制?A 调用 B 方法,事务咋生效?SpringBoot 常用注解有哪些?Spring 代理模式的原理?Spring 还有哪些作用域?Spring 对象创建流程?工厂模式的应用?Java 反射基础。
还讨论了:重复支付怎么解决?MySQL 乐观锁和悲观锁都用在哪?最左前缀原则是啥?Java 的锁有哪几类?异常体系?`volatile` 的特性?B+ 树索引结构?HashMap 在 1.7 和 1.8 的区别?不同 JDK 版本的区别?红黑树的特点。
二面
问了为啥换实习,还问了 Redis 怎么实现延时消息,以及为啥用 Lua 脚本。
讨论了缓存穿透设置 TTL 为啥只能解决同一个 id 的查询问题。
聊了 SSO 的实现和难点,线程池的关键参数怎么配。
探讨了大数据处理方案、接口限流(同步/异步)策略、代码部署流程。
算法题:二叉树中和为某一值的路径 (一)。
还问了前端技术栈,用没用过 React。
最后简单复盘了 JVM 调优、分代机制、线程池工作原理、核心线程和最大线程的区别、GC 过程、Redis 的 String 是怎么实现的这些知识点。